＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

                        PC-FXGAオーサリングソフトウェア
                    『ＧＭＡＫＥＲ』スタータキット(Ver.1.1)
                          ”ＬＩＢＦＡＲＬ．Ａ”の解説

                                        日本電気ホームエレクトロニクス株式会社
                                                        １９９６年　５月３０日

＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

目次

第１章  FARL概要

１．１  関数名やマクロ名
１．２  セグメント

第２章  Farl Function Summary

２．１  Basic Functions
２．１．１  HuC6273の初期化                            FarlInit
２．１．２  HuC6273のリセット                          FarlReset
２．１．３  メモリマップレジスタのセット               FarlSetMemReg
２．１．４  メモリマップレジスタの読み出し             FarlGetMemReg
２．１．５  ＴＥレジスタのセット                       FarlSetTEReg
２．１．６  ＴＥレジスタの読み出し                     FarlGetTEReg
２．１．７  ＰＥレジスタのセット                       FarlSetPEReg
２．１．８  ＰＥレジスタの読み出し                     FarlGetPEReg
２．１．９  Texture bufferへの書き込み(Pack mode)      FarlWriteTxt
２．１．10  Texture bufferへの書き込み(Unpack mode)    FarlWriteTxtUnpk
２．１．11  Texture bufferへの書き込み(Pack mode)      FarlWriteTxtXY
２．１．12  Texture bufferへの書き込み(Unpack mode)    FarlWriteTxtXYUnpk
２．１．13  FIFOへの書き込み(16bit)                    FarlWriteFifoH
２．１．14  FIFOへの書き込み(32bit)                    FarlWriteFifoW
２．１．15  FIFOへの書き込み(16bit)                    FarlWriteFifoHA
２．１．16  FIFOへの書き込み(32bit)                    FarlWriteFifoWA
２．１．17  Overlay LUTのセット                        FarlSetLut
２．１．18  Overlay LUTから値を読み出す                FarlGetLut
２．１．19  ライトベクターをセット                     FarlSetLight

２．２  Command Functions
２．２．１  Display/Z bufferからの読み出し             FarlReadPixelDZ
２．２．２  Texture bufferからの読み出し               FarlReadPixelTxt
２．２．３  TE object matrixのセット                   FarlSetTEObjMatrix
２．２．４  TE normal matrixのセット                   FarlSetTENrmMatrix
２．２．５  TE light1 vectorのセット                   FarlSetLight1
２．２．６  TE light2 vectorのセット                   FarlSetLight2
２．２．７  TE light coefficientのセット               FarlSetLightCoef
２．２．８  TE control registerのセット                FarlSetTEControlReg
２．２．９  TE window clip registerのセット            FarlSetWindowClipReg
２．２．10  TE window scale registerのセット           FarlSetWindowScaleReg
２．２．11  TE mesh pattern registerのセット           FarlSetTEMeshPatternReg
２．２．12  TE source matrix registerのセット(4x4)     FarlSetSrcMatrix
２．２．13  TE source matrix registerのセット(3x3)     FarlSetSrcMatrix3x3
２．２．14  TE source matrix registerのセット(3x1)     FarlSetSrcMatrix3x1
２．２．15  TE source matrix registerのセット(6)       FarlSetSrcMatrix6
２．２．16  TE uv offset registerのセット              FarlSetUVOffsetReg
２．２．17  TE default color registerのセット          FarlSetDefColorReg
２．２．18  PE texture select registerのセット         FarlSetPETextureReg
２．２．19  PE target registerのセット                 FarlSetPETargetReg
２．２．20  PE mask registerのセット                   FarlSetPEMaskReg
２．２．21  PE control registerのセット                FarlSetPEControlReg
２．２．22  PE clear Z value registerのセット          FarlSetPEClearZReg
２．２．23  PE frame control registerのセット          FarlSetPEFrameCtrlReg
２．２．24  PE clear color value registerのセット      FarlSetPEClearColorReg
２．２．25  PE IC mask registerのセット                FarlSetPEICMaskReg
２．２．26  PE flash IC value registerのセット         FarlSetPEFlashICReg
２．２．27  PE clear texture select registerのセット   FarlSetPEClearTextureReg
２．２．28  PE clear mask registerのセット             FarlSetPEClearMaskReg
２．２．29  PE CWT X offset registerのセット           FarlSetPECwtXOffReg
２．２．30  PE CWT Y offset registerのセット           FarlSetPECwtYOffReg
２．２．31  Fill buffer コマンド                       FarlFillBuffer
２．２．32  Vertex test コマンド                       FarlVertexTest
２．２．33  TE sync コマンド                           FarlTESync
２．２．34  ベクターとマトリクスの演算(1.8.7)          FarlMul3x1V1015
２．２．35  ４×４マトリクスの演算(1.0.15)             FarlMul4x4M1015
２．２．36  ３×３マトリクスの演算(1.0.15)             FarlMul3x3M1015
２．２．37  ４×４マトリクスの演算(1.8.7)              FarlMul4x4M187
２．２．38  ３×３マトリクスの演算(1.8.7)              FarlMul3x3M187
２．２．39  マトリクスのコピー(DST-->SRC/4x4)          FarlCopyDstToSrc
２．２．40  マトリクスのコピー(DST-->OBJ/4x4)          FarlCopyDstToObj
２．２．41  マトリクスのコピー(DST-->NRM/3x3)          FarlCopyDstToNrm
２．２．42  マトリクスのコピー(DST-->RST/16)           FarlCopyDstToRst
２．２．43  マトリクスのコピー(SRC-->RST/6)            FarlCopySrcToRst
２．２．44  マトリクスのコピー(RST-->SRC/4x4)          FarlCopyRstToSrc
２．２．45  ライトベクターのコピー(DST-->LGT1/3)       FarlCopyDstToLgt1
２．２．46  ライトベクターのコピー(DST-->LGT2/3)       FarlCopyDstToLgt2
２．２．47  Overlay LUT[1]のセット                     FarlSetLut1
２．２．48  Overlay LUT[2]のセット                     FarlSetLut2
２．２．49  Overlay LUT[3]のセット                     FarlSetLut3
２．２．50  Triangle stripの描画                       FarlTriangleStrip
２．２．51  Triangle listの描画                        FarlTriangleList
２．２．52  Poly lineの描画                            FarlPolyLine
２．２．53  Line listの描画                            FarlLineList
２．２．54  Point listの描画                           FarlPointList
２．２．55  イメージのダウンロード                     FarlPutImage
２．２．56  イメージのダウンロード(Z付き)              FarlPutDZImage
２．２．57  テクスチャのダウンロード                   FarlPutTextureImage

２．３  Utility Functions
２．３．１  Triangle stripコマンドのダンプ             FarlDumpTriangleStrip
２．３．２  Triangle listコマンドのダンプ              FarlDumpTriangleList
２．３．３  Poly lineコマンドのダンプ                  FarlDumpPolyLine
２．３．４  Line listコマンドのダンプ                  FarlDumpLineList
２．３．５  Point listコマンドのダンプ                 FarlDumpPointList
２．３．６  Triangle stripコマンドのサイズの取得       FarlGetTriangleStripSize
２．３．７  Triangle listコマンドのサイズの取得        FarlGetTriangleListSize
２．３．８  Poly lineコマンドのサイズの取得            FarlGetPolyLineSize
２．３．９  Line listコマンドのサイズの取得            FarlGetLineListSize
２．３．10  Point listコマンドのサイズの取得           FarlGetPointListSize
２．３．11  固定小数点データの掛け算(1.0.15)           FarlFixMul1015
２．３．12  固定小数点データの掛け算(1.8.7)            FarlFixMul187
２．３．13  単位マトリクスのセット(SRC/1.0.15)         FarlSetUnitMatrix1015
２．３．14  単位マトリクスのセット(SRC/1.8.7)          FarlSetUnitMatrix187
２．３．15  X軸まわりの回転マトリクスの演算(1.0.15)    FarlRotateX3x3M1015
２．３．16  Y軸まわりの回転マトリクスの演算(1.0.15)    FarlRotateY3x3M1015
２．３．17  Z軸まわりの回転マトリクスの演算(1.0.15)    FarlRotateZ3x3M1015
２．３．18  X軸まわりの回転マトリクスの演算(1.8.7)     FarlRotateX4x4M187
２．３．19  Y軸まわりの回転マトリクスの演算(1.8.7)     FarlRotateY4x4M187
２．３．20  Z軸まわりの回転マトリクスの演算(1.8.7)     FarlRotateZ4x4M187
２．３．21  X軸まわりの回転マトリクスの演算(1.0.15)    FarlRotateXSC3x3M1015
２．３．22  Y軸まわりの回転マトリクスの演算(1.0.15)    FarlRotateYSC3x3M1015
２．３．23  Z軸まわりの回転マトリクスの演算(1.0.15)    FarlRotateZSC3x3M1015
２．３．24  X軸まわりの回転マトリクスの演算(1.8.7)     FarlRotateXSC4x4M187
２．３．25  Y軸まわりの回転マトリクスの演算(1.8.7)     FarlRotateYSC4x4M187
２．３．26  Z軸まわりの回転マトリクスの演算(1.8.7)     FarlRotateZSC4x4M187
２．３．27  移動マトリクスの演算(1.8.7)                FarlTranslate4x4M187
２．３．28  拡大／縮小マトリクスの演算(1.8.7)          FarlScale4x4M187
２．３．29  パースマトリクスの演算(1.8.7)              FarlPerseZ4x4M187
２．３．30  Display bufferのスワップ                   FarlSwapWindow
２．３．31  Dummy スワップ                             FarlDummySwap
２．３．32  Validate スワップ                          FarlValidateSwap
２．３．33  H-Blank スワップ                           FarlSwapWindowH
２．３．34  8bit(Byte)データの書き込み                 FarlOutportB
２．３．35  16bit(Halfword)データの書き込み            FarlOutportH
２．３．36  32bit(Word)データの書き込み                FarlOutportW
２．３．37  8bit(Byte)データの読み込み                 FarlInportB
２．３．38  16bit(Halfword)データの読み込み            FarlInportH
２．３．39  32bit(Word)データの読み込み                FarlInportW
２．３．40  Config registerの読み出し                  FarlGetConf
２．３．41  浮動小数点の固定小数点変換(1.8.7)          FarlFix187
２．３．42  浮動小数点の固定小数点変換(1.0.15)         FarlFix1015
２．３．43  固定小数点(1.8.7)の浮動小数点変換          FarlFloat187
２．３．44  固定小数点(1.0.15)の浮動小数点変換         FarlFloat1015
２．３．45  固定小数点ベクターの正規化(1.0.15)         FarlNormalizeVector
２．３．46  sin値の取得(1.8.7)                         FarlGetSin187
２．３．47  sin値の取得(1.0.15)                        FarlGetSin1015
２．３．48  cos値の取得(1.8.7)                         FarlGetCos187
２．３．49  cos値の取得(1.0.15)                        FarlGetCos1015
２．３．50  マトリクスのコピー(DST-->Mem/4x4)          FarlCopyDstToMem4x4
２．３．51  マトリクスのコピー(DST-->Mem/3x3)          FarlCopyDstToMem3x3
２．３．52  マトリクスのコピー(DST-->Mem/3x1)          FarlCopyDstToMem3x1
２．３．53  X軸まわりの回転マトリクスの取得(1.0.15)    FarlGetRotateX3x3M1015
２．３．54  Y軸まわりの回転マトリクスの取得(1.0.15)    FarlGetRotateY3x3M1015
２．３．55  Z軸まわりの回転マトリクスの取得(1.0.15)    FarlGetRotateZ3x3M1015
２．３．56  X軸まわりの回転マトリクスの取得(1.0.15)    FarlGetRotateXSC3x3M1015
２．３．57  Y軸まわりの回転マトリクスの取得(1.0.15)    FarlGetRotateYSC3x3M1015
２．３．58  Z軸まわりの回転マトリクスの取得(1.0.15)    FarlGetRotateZSC3x3M1015
２．３．59  X軸まわりの回転マトリクスの取得(1.8.7)     FarlGetRotateX4x4M187
２．３．60  Y軸まわりの回転マトリクスの取得(1.8.7)     FarlGetRotateY4x4M187
２．３．61  Z軸まわりの回転マトリクスの取得(1.8.7)     FarlGetRotateZ4x4M187
２．３．62  X軸まわりの回転マトリクスの取得(1.8.7)     FarlGetRotateXSC4x4M187
２．３．63  Y軸まわりの回転マトリクスの取得(1.8.7)     FarlGetRotateYSC4x4M187
２．３．64  Z軸まわりの回転マトリクスの取得(1.8.7)     FarlGetRotateZSC4x4M187
２．３．65  移動マトリクスの取得(1.8.7)                FarlGetTranslate4x4M187
２．３．66  拡大／縮小マトリクスの取得(1.8.7)          FarlGetScale4x4M187
２．３．67  マトリクスのコピー(Mem/4x4-->Mem/4x4)      FarlMatrixCopy4x4
２．３．68  マトリクスのコピー(Mem/3x3-->Mem/3x3)      FarlMatrixCopy3x3

２．４  Sprite Functions 
２．４．１  Sprite control tableのセット               FarlSetSpControlTbl
２．４．２  Sprite parameter tableのセット             FarlSetSpParamTbl
２．４．３  Sprite window clip registerのセット        FarlSetSpWinClipReg
２．４．４  スプライトの起動                           FarlSpriteGo
２．４．５  スプライト処理の終了待ち                   FarlSpbsySpin
２．４．６  スプライト処理の終了待ち                   FarlWaitSpdone
２．４．７  SPDONEビットのクリア                       FarlClearSpdone

２．５ CMT Functions 
２．５．１  Command macro tableのセット                FarlSetCmt
２．５．２  Command macroの起動                        FarlCmtGo
２．５．３  Command macro処理の終了待ち                FarlCmbsySpin
２．５．４  Command macro pendingの空き待ち            FarlCmpndSpin
２．５．５  Command macro処理の終了待ち                FarlWaitCmdone
２．５．６  CMDONEビットのクリア                       FarlClearCmdone

第３章  FarlInit()によるレジスタの初期化内容

＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

第１章  FARL概要

本ライブラリは、 HuC6273を直接操作するための基本的な関数を含んでいます。ほとん
どの関数は、速度と簡潔さを重視して書かれているため、引き渡されるパラメータなど
のチェックを行なっていません。このため、範囲を越える値をセットしないように注意
が必要です。

■１．１  関数名やマクロ名

基本的に

関  数：    FarlXxxxXxxx()
マクロ：    FARL_XXXXXXXX

という文字列で始まる名前になっています。

■１．２  セグメント

以下のようにセグメントが定義されています。リンク時に設定して下さい。

    #pragma defseg (-C, farl_code)
    #pragma defseg (-D, farl_data)
    #pragma defseg (-Z, farl_zero)
    #pragma defseg (-B, farl_bss)

＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

第２章  Farl Function Summary

■２．１  Basic Functions

HuC6273にアクセスするための基本的な関数群


◆２．１．１  HuC6273の初期化

《名称》
FarlInit

《形式》
#include <farl.h>
int FarlInit()

《パラメータ》
パラメータはありません。

《解説》
FARLを利用する時は、必ず最初に呼んで下さい。 HuC6273をリセットして、レジスタの
初期化および Display bufferと Z bufferのクリアを行ないます。レジスタへの設定値
については、第３章『FarlInit()によるレジスタの初期化内容』をご覧下さい。

＜注＞  FarlGetConf()は、FarlInit()を呼ばずに単独で利用できます。

《戻り値》
   0:   HuC6273が存在する。
  -1:   HuC6273は存在しない。


◆２．１．２  HuC6273のリセット

《名称》
FarlReset

《形式》
#include <farl.h>
void FarlReset(int sw)

《パラメータ》
sw :    FARL_STATUS_CONTROL_HRST: ハードリセット。すべてのレジスタは、電源投入
                                  時の初期値に初期化されます
        FARL_STATUS_CONTROL_SRST: ソフトリスタート。 FIFOがクリアされ、HuC6273
                                  が再起動されます。ただし、すべての設定可能な
                                  レジスタの内容は変更されません。

《解説》
HuC6273をリセットまたはリスタートします。

《戻り値》
戻り値はありません。


◆２．１．３  メモリマップレジスタのセット

《名称》
FarlSetMemReg

《形式》
#include <farl.h>
void FarlSetMemReg(unsigned int addr, unsigned short data)

《パラメータ》
addr :  レジスタのアドレス
data :  書き込むデータ

《解説》
レジスタのアドレス(addr)や、書き込むデータ(data)については、HuC6273のマニュア
ルおよび farl.h を参照して下さい。メモリマップレジスタには、書き込めないものも
ありますので注意が必要です。

《戻り値》
戻り値はありません。


◆２．１．４  メモリマップレジスタの読み出し

《名称》
FarlGetMemReg

《形式》
#include <farl.h>
unsigned short FarlGetMemReg(int addr)

《パラメータ》
addr :  レジスタのアドレス

《解説》
レジスタのアドレス(addr)については、HuC6273のマニュアルおよび farl.h を参照し
て下さい。メモリマップレジスタには、読み出せないものもありますので注意が必要で
す。

《戻り値》
メモリマップレジスタから読み込んだ値を返します。


◆２．１．５  ＴＥレジスタのセット

《名称》
FarlSetTEReg

《形式》
#include <farl.h>
void FarlSetTEReg(int regid, unsigned short data)

《パラメータ》
regid : レジスタのID
data  : セットされる値

《解説》
レジスタの ID(regid)および書き込むデータ(data)の意味については、HuC6273のマ
ニュアルおよび farl.h を参照して下さい。なお、個別のレジスタに用意されてい
る書き込み関数の方が、高速に処理が可能です。

《戻り値》
戻り値はありません。


◆２．１．６  ＴＥレジスタの読み出し

《名称》
FarlGetTEReg

《形式》
#include <farl.h>
unsigned short FarlGetTEReg(int regid, int sw)

《パラメータ》
regid : レジスタのID
sw    : FARL_NOBLK:要求のみを送出し、リードバックの終了を待たずに返ります。
        FARL_BLK:  リードバックの終了まで待って値を返します。

《解説》
レジスタの ID(regid)については、HuC6273のマニュアルおよび farl.h を参照して下
さい。
パラメータ sw を FARL_NONBLK とすると、リードバックの完了を待たずに要求のみを送
出します。その場合、戻り値はありません。Interrupt status registerのRBDONEビット
をポーリングするかまたはインタラプトでリードバックの完了を通知された後にRead
back registerから読み出して下さい。

《戻り値》
(sw==FARL_BLKの場合)ＴＥレジスタからの値を返します。


◆２．１．７  ＰＥレジスタのセット

《名称》
FarlSetPEReg

《形式》
#include <farl.h>
void FarlSetPEReg(int regid, unsigned short data)

《パラメータ》
regid : レジスタのID
data  : ＰＥレジスタにセットする値

《解説》
レジスタの ID(regid)および書き込むデータ(data)の意味については、HuC6273のマ
ニュアルおよび farl.h を参照して下さい。

《戻り値》
戻り値はありません。


◆２．１．８  ＰＥレジスタの読み出し

《名称》
FarlGetPEReg

《形式》
#include <farl.h>
unsigned short FarlGetPEReg(int regid, int sw)

《パラメータ》
regid : レジスタのID
sw    : FARL_NOBLK:要求のみを送出し、リードバックの終了を待たずに返ります
        FARL_BLK:  リードバックの終了まで待って値を返します。

《解説》
レジスタの ID(regid)については、HuC6273のマニュアルおよび farl.h を参照して下
さい。なお、個別に用意されている読み出し関数の方が、高速に処理が可能です。
パラメータ sw を FARL_NONBLK とすると、リードバックの完了を待たずに要求の
みを送出します。その場合、戻り値はありません。Interrupt status registerのRBDONE
ビットをポーリングするかまたはインタラプトでリードバックの完了を通知された後に
Read back registerから読み出して下さい。

《戻り値》
(sw==FARL_BLKの場合)ＰＥレジスタの値を返します。


◆２．１．９  Texture bufferへの書き込み(Pack mode)

《名称》
FarlWriteTxt

《形式》
#include <farl.h>
void FarlWriteTxt(unsigned short addr, unsigned short data)

《パラメータ》
addr :  バンクの先頭からのアドレス(0x0000〜0xfffe)
data :  書き込みデータ(16bit)

《解説》
Texture bufferへデータ dataを16bitデータとして Pack mode(16bitアクセスモード)で
書き込みます。アドレスは、CMT bank select registerにセットされているバンクの先
頭からaddrで指定します。addrは偶数(ワードバウンダリ)でなければなりません。この
関数は主にCMTやSCTなどの16bitデータを書き込むために使います。

《戻り値》
戻り値はありません。


◆２．１．10  Texture bufferへの書き込み(Unpack mode)

《名称》
FarlWriteTxtUnpk

《形式》
#include <farl.h>
void FarlWriteTxtUnpk(unsigned short addr, unsigned short data)

《パラメータ》
addr :  バンクの先頭アドレス(0x0000〜0xfffe)
data :  書き込みデータ(9bit)

《解説》
Texture bufferへデータ dataを9bitデータとして Unpack mode(9bitアクセスモード)で
書き込みます。アドレスは、CMT bank select registerにセットされているバンクの先
頭からaddrで指定します。

《戻り値》
戻り値はありません。


◆２．１．11  Texture bufferへの書き込み(Pack mode)

《名称》
FarlWriteTxtXY

《形式》
#include <farl.h>
void FarlWriteTxtXY(unsigned short x, unsigned short y, unsigned short data)

《パラメータ》
x    :  バンクの先頭からのx座標(0〜255)
y    :  バンクの先頭からのy座標(0〜255)
data :  書き込むデータ(16bit)

《解説》
Texture bufferへデータ dataを16bitデータとして Pack mode(16bitアクセスモード)で
書き込みます。アドレスは、CMT bank select registerにセットされているバンクの先
頭からx, yで指定します。

《戻り値》
戻り値はありません。


◆２．１．12  Texture bufferへの書き込み(Unpack mode)

《名称》
FarlWriteTxtXYUnpk 

《形式》
#include <farl.h>
void FarlWriteTxtXYUnpk(unsigned short x, unsigned short y,
                        unsigned short data)

《パラメータ》
x    :  バンクの先頭からのx座標(0〜255)
y    :  バンクの先頭からのy座標(0〜255)
data :  書き込みデータ(9bit)

《解説》
Texture bufferへデータ dataを9bitデータとして Unpack mode(9bitアクセスモード)で
書き込みます。アドレスは、CMT bank select registerにセットされているバンクの先
頭からx, yで指定します。この関数は主にテクセルデータを書き込むために使います。

《戻り値》
戻り値はありません。


◆２．１．13  FIFOへの書き込み(16bit)

《名称》
FarlWriteFifoH

《形式》
#include <farl.h>
void FarlWriteFifoH(unsigned short data)

《パラメータ》
data :  FIFOに書き込む16bitデータ

《解説》
FIFOにデータ dataを16bitデータとして書き込みます。FIFOの空きを確認して書き込み
を行ないますので、連続して呼び出してもFIFOが溢れることはありません。

《戻り値》
戻り値はありません。


◆２．１．14  FIFOへの書き込み(32bit)

《名称》
FarlWriteFifoW

《形式》
#include <farl.h>
void FarlWriteFifoW(unsigned int data)

《パラメータ》
data :  FIFOに書き込む32bitデータ

《解説》
FIFOにデータ dataを32bitデータとして書き込みます。この時FIFOへは、先に下位16
ビットが書き込まれ、次に上位16ビットが書き込まれます。FIFOの空きを確認して書き
込みを行ないますので、連続して呼び出してもFIFOが溢れることはありません。

《戻り値》
戻り値はありません。


◆２．１．15  FIFOへの書き込み(16bit)

《名称》
FarlWriteFifoHA

《形式》
#include <farl.h>
void FarlWriteFifoHA(unsigned short *data, int num)

《パラメータ》
data :  FIFOに書き込む16bitデータ配列の先頭を指すポインタ
num  :  書き込むデータ数

《解説》
FIFOにnum個の16bitデータ配列dataの内容を書き込みます。

《戻り値》
戻り値はありません。


◆２．１．16  FIFOへの書き込み(32bit)

《名称》
FarlWriteFifoWA

《形式》
#include <farl.h>
void FarlWriteFifoWA(unsigned int *data, int num)

《パラメータ》
data :  FIFOに書き込む32bitデータ配列の先頭を指すポインタ
num  :  書き込むデータ数

《解説》
FIFOにnum個の32bitデータ配列dataの内容を書き込みます。

《戻り値》
戻り値はありません。


◆２．１．17  Overlay LUTのセット

《名称》
FarlSetLut

《形式》
#include <farl.h>
void FarlSetLut(int num, unsigned short data)

《パラメータ》
num  :  LUT番号(1〜3)
data :  書き込みデータ

《解説》
LUT番号(num)で指定されたLUTに値を書き込みます。

《戻り値》
戻り値はありません。


◆２．１．18  Overlay LUTから値を読み出す

《名称》
FarlGetLut

《形式》
#include <farl.h>
unsigned short FarlGetLut(int num, int sw)

《パラメータ》
num :   LUT番号(1〜3)
sw  :   FARL_NOBLK:要求のみを送出し、リードバックの終了を待たずに返ります。
        FARL_BLK:  リードバックの終了まで待って値を返します。

《解説》
LUT番号(num)で指定された LUTから値を読み出します。
パラメータ sw を FARL_NONBLK とすると、リードバックの完了を待たずに要求の
みを送出します。その場合、戻り値はありません。Interrupt status registerのRBDONE
ビットをポーリングするかまたはインタラプトでリードバックの完了を通知された後に
Read back registerから読み出して下さい。

《戻り値》
(sw==FARL_BLKの場合)LUTから読み出した値を返します。


◆２．１．19  ライトベクターをセット

《名称》
FarlSetLight

《形式》
#include <farl.h>
void FarlSetLight(int num,unsigned short x,unsigned short y,unsigned short z)

《パラメータ》
num     :   ライト番号
x, y, z :   ライトのベクター <1.0.15>

《解説》
ライト番号(num)で指定された TE light vectorに値 x, y, z (<1.0.15>フォーマット)
をセットします。ライトベクターは長さ 1 に正規化されていなければなりません。
ライト番号(num)はFARL_SET_LIGHT1, FARL_SET_LIGHT2のどちらかをセットします。
( FarlSetLight1, FarlSetLight2 参照 )

《戻り値》
戻り値はありません。


＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

■２．２  Command Functions

◆２．２．１  Display/Z bufferからの読み出し

《名称》
FarlReadPixelDZ

《形式》
#include <farl.h>
unsigned short FarlReadPixelDZ(unsigned short x, unsigned short y, int sw)

《パラメータ》
x  :    Display buffer/Z bufferのx座標 (0〜255 または 0〜319)
y  :    Display buffer/Z bufferのy座標 (0〜239 または 0〜199)
sw :    FARL_NOBLK:要求のみを送出し、リードバックの終了を待たずに返ります。
        FARL_BLK:  リードバックの終了まで待って値を返します。

《解説》
Display buffer/Z bufferからデータを読み出します。Display bufferと Z bufferのど
ちらから読み出すかは PE target registerの設定によります。
パラメータ sw を FARL_NONBLK とすると、リードバックの完了を待たずに要求の
みを送出します。その場合、戻り値はありません。Interrupt status registerのRBDONE
ビットをポーリングするかまたはインタラプトでリードバックの完了を通知された後に
Read back registerから読み出して下さい。

《戻り値》
(sw==FARL_BLKの場合)Display buffer/Z bufferから読み出した値を返します。


◆２．２．２  Texture bufferからの読み出し

《名称》
FarlReadPixelTxt

《形式》
#include <farl.h>
unsigned short FarlReadPixelTxt(unsigned short x, unsigned short y, int sw)

《パラメータ》
x  :    Texture bufferのx座標 (0〜255)
y  :    Texture bufferのy座標 (0〜255)
sw :    FARL_NOBLK:要求のみを送出し、リードバックの終了を待たずに返ります。
        FARL_BLK:  リードバックの終了まで待って値を返します。

《解説》
Texture bufferからデータを読み出します。
データを読み出すバンクは、PE texture select registerの設定によります。
パラメータ sw を FARL_NONBLK とすると、リードバックの完了を待たずに要求の
みを送出します。その場合、戻り値はありません。Interrupt status registerのRBDONE
ビットをポーリングするかまたはインタラプトでリードバックの完了を通知された後に
Read back registerから読み出して下さい。

《戻り値》
(sw==FARL_BLKの場合)Texture bufferから読み出した値を返します。


◆２．２．３  TE object matrixのセット

《名称》
FarlSetTEObjMatrix

《形式》
#include <farl.h>
void FarlSetTEObjMatrix(unsigned short m[4][4])

《パラメータ》
m :     セットするマトリクスデータ

《解説》
TE object matrix に m[4][4]をセットします。
データのフォーマットは、<1.8.7>です。

《戻り値》
戻り値はありません。


◆２．２．４  TE normal matrixのセット 

《名称》
FarlSetTENrmMatrix 

《形式》
#include <farl.h>
void FarlSetTENrmMatrix(unsigned short m[3][3])

《パラメータ》
m :     セットするマトリクスデータ

《解説》
TE normal matrix に m[3][3]をセットします。
データのフォーマットは、<1.0.15>です。

《戻り値》
戻り値はありません。


◆２．２．５  TE light1 vectorのセット 

《名称》
FarlSetLight1

《形式》
#include <farl.h>
void FarlSetLight1(unsigned short x, unsigned short y, unsigned short z)

《パラメータ》
x, y, z :   ライトのベクター <1.0.15>

《解説》
TE light1 vecterに値x,y,zをセットします。x,y,zは<1.0.15>フォーマットです。ベク
ターは長さ 1 に正規化されている必要があります。光源へ向かうベクトルとしてセッ
トして下さい。

        ＜光源＞    <--------    Vector

《戻り値》
戻り値はありません。


◆２．２．６  TE light2 vectorのセット 

《名称》
FarlSetLight2

《形式》
#include <farl.h>
void FarlSetLight2(unsigned short x, unsigned short y, unsigned short z)

《パラメータ》
x, y, z :   ライトのベクター <1.0.15>

《解説》
TE light2 vecterに値x,y,zをセットします。x,y,zは<1.0.15>フォーマットです。ベク
ターは長さ 1 に正規化されている必要があります。光源へ向かうベクトルとしてセッ
トして下さい。

        ＜光源＞    <--------    Vector

《戻り値》
戻り値はありません。


◆２．２．７  TE light coefficientのセット

《名称》
FarlSetLightCoef

《形式》
#include <farl.h>
void FarlSetLightCoef(unsigned short amb, unsigned short dif1,
                      unsigned short dif2,unsigned short sp1,
                      unsigned short sp2)

《パラメータ》
amb  :  環境光が物体表面で反射する強度
dif1 :  ライト１が物体表面で拡散反射する強度
dif2 :  ライト２が物体表面で拡散反射する強度
sp1  :  ライト１が物体表面で鏡面反射する強度
sp2  :  ライト２が物体表面で鏡面反射する強度

《解説》
TE light coefficientに値をセットします。
パラメータはすべて、<0.0.15>フォーマットです。

《戻り値》
戻り値はありません。


◆２．２．８  TE control registerのセット 

《名称》
FarlSetTEControlReg

《形式》
#include <farl.h>
void FarlSetTEControlReg(unsigned short d)

《パラメータ》
d :     TE control register にセットする値

《解説》
TE control registerに値dをセットします。

値をセットする際に、以下の値をORまたは+してセットできます。
FARL_TE_RJM           (1<<9)  /* Reject mode            */
FARL_TE_MSH           (1<<8)  /* Mesh disable           */
FARL_TE_LTEN          (1<<5)  /* Light Enable           */
FARL_TE_SPEN          (1<<4)  /* Specular Enable        */
FARL_TE_BCE           (1<<2)  /* Backface Cull Enable   */
FARL_TE_NNF           (1<<1)  /* Negative Normal Flip   */
FARL_TE_ICM           (1<<0)  /* I-C Mode               */

《戻り値》
戻り値はありません。


◆２．２．９  TE window clip registerのセット
《名称》
FarlSetWindowClipReg

《形式》
#include <farl.h>
void FarlSetWindowClipReg(unsigned short xl, unsigned short yt,
                          unsigned short xr, unsigned short yb)

《パラメータ》
xl :    ウィンドウの左端を示すX座標
yt :    ウィンドウの上端を示すY座標
xr :    ウィンドウの右端を示すX座標
yb :    ウィンドウの下端を示すY座標

《解説》
TE window clip registerに、3D描画を行うウィンドウの矩形領域のデバイス座標系の
値 xl, yt, xr, ybをセットします。

《戻り値》
戻り値はありません。


◆２．２．10  TE window scale registerのセット 

《名称》
FarlSetWindowScaleReg 

《形式》
#include <farl.h>
void FarlSetWindowScaleReg(unsigned short sx, unsigned short tx,
                           unsigned short sy, unsigned short ty)

《パラメータ》
sx :    X方向倍率
tx :    X方向オフセット
sy :    Y方向倍率
ty :    Y方向オフセット


《解説》
TE window scale registerに値sx, tx, sy, tyをセットします。
セットされるパラメーターは、スクリーン座標系からデバイス座標系への変換のための
係数です。スクリーン座標系での座標を x, y、デバイス座標系での座標を x', y'とす
ると、以下のように変換されます。

 x' ＝ sx × x ＋ tx
 y' ＝ sy × y ＋ ty

sx,tx,sy,tyは,<1.15.0>フォーマットです。

《戻り値》
戻り値はありません。


◆２．２．11  TE Mesh pattern registerのセット 

《名称》
FarlSetTEMeshPatternReg

《形式》
#include <farl.h>
void FarlSetTEMeshPatternReg(unsigned short d)

《パラメータ》
d :     TE mesh pattern registerにセットする値

《解説》
設定された値dを TE mesh pattern registerにセットします。

《戻り値》
戻り値はありません。


◆２．２．12  TE source matrix registerのセット(4x4) 

《名称》
FarlSetSrcMatrix

《形式》
#include <farl.h>
void FarlSetSrcMatrix(unsigned short m[4][4])

《パラメータ》
m :     TE source matrix registerにセットするマトリクス

《解説》
TE source matrix registerに4x4のマトリクス m[4][4]をセットします。

《戻り値》
戻り値はありません。


◆２．２．13  TE source matrix registerのセット(3x3) 

《名称》
FarlSetSrcMatrix3x3

《形式》
#include <farl.h>
void FarlSetSrcMatrix3x3(unsigned short m[3][3])

《パラメータ》
m :     TE source matrix registerにセットするマトリクス

《解説》
TE source matrix registerに3x3のマトリクス m[3][3]をセットします。

《戻り値》
戻り値はありません。


◆２．２．14  TE source matrix registerのセット(3x1) 

《名称》
FarlSetSrcMatrix3x1

《形式》
#include <farl.h>
void FarlSetSrcMatrix3x1(unsigned short v[3])

《パラメータ》
v :     TE source matrix registerにセットするベクター

《解説》
TE source matrix registerにベクター v[3]をセットします。

《戻り値》
戻り値はありません。


◆２．２．15  TE source matrix registerのセット(6) 

《名称》
FarlSetSrcMatrix6

《形式》
#include <farl.h>
void FarlSetSrcMatrix6(unsigned short m[6])

《パラメータ》
m :     TE source matrix registerにセットするデータの配列

《解説》
TE source matrix registerにm[6]をセットします。

《戻り値》
戻り値はありません。


◆２．２．16  TE uv offset registerのセット 

《名称》
FarlSetUVOffsetReg

《形式》
#include <farl.h>
void FarlSetUVOffsetReg(unsigned short u, unsigned short v)

《パラメータ》
u :     TE uv offset registerのセットするuの値
v :     TE uv offset registerのセットするvの値

《解説》
TE uv offset registerに値u,vをセットします。u,vは、下位8bitのみが有効です。

《戻り値》
戻り値はありません。


◆２．２．17  TE default color registerのセット 

《名称》
FarlSetDefColorReg

《形式》
#include <farl.h>
void FarlSetDefColorReg(unsigned short c)

《パラメータ》
c :     TE default color registerにセットする値

《解説》
TE default color registerに値cをセットします。

《戻り値》
戻り値はありません。


◆２．２．18  PE texture select registerのセット 

《名称》
FarlSetPETextureReg

《形式》
#include <farl.h>
void FarlSetPETextureReg(unsigned short d)

《パラメータ》
d :     PE texture select registerにセットする値

《解説》
PE texture select registerに値dをセットします。

《戻り値》
戻り値はありません。


◆２．２．19  PE target registerのセット 

《名称》
FarlSetPETargetReg

《形式》
#include <farl.h>
void FarlSetPETargetReg(unsigned short d)

《パラメータ》
d :     PE target registerにセットする値

《解説》
PE target registerに値dをセットします。

以下の値をいずれかセットできます。
FARL_PE_WBEN_DZ     (3<<1)   /* Both buffer enable    */
FARL_PE_WBEN_Z      (2<<1)   /* Only Z buffer enable  */
FARL_PE_WBEN_D      (1<<1)   /* Only D buffer enable  */
FARL_PE_WBEN_NONE   (0<<1)   /* Both buffer disable   */

上記と同時に以下の値をいずれかセットできます。
FARL_PE_RBSEL_Z        (1<<0)   /* Read from Z buffer */
FARL_PE_RBSEL_D        (0<<0)   /* Read from D buffer */

《戻り値》
戻り値はありません。


◆２．２．20  PE mask registerのセット 

《名称》
FarlSetPEMaskReg

《形式》
#include <farl.h>
void FarlSetPEMaskReg(unsigned short d)

《パラメータ》
d :     PE mask registerにセットする値

《解説》
PE mask registerに値dをセットします。書き込むピクセルデータをマスクします。通
常、0x0fffで使用します。ただし、3Dコマンドは、常に上位4ビットが1111で書き込ま
れますので、特殊なプレーンへの書き込みを制御することが可能です。

《戻り値》
戻り値はありません。


◆２．２．21  PE control registerのセット

《名称》
FarlSetPEControlReg 

《形式》
#include <farl.h>
void FarlSetPEControlReg(unsigned short d)

《パラメータ》
d :     PE control registerにセットする値

《解説》
PE control registerに値dをセットします。

以下の値をORまたは+してセットできます。
FARL_PE_SSFT    (1<<15)     /* Shadow bit shift      */
FARL_PE_FWOZ    (1<<14)     /* Fog Without Z         */
FARL_PE_RSDW    (1<<13)     /* Reversed shadow       */
FARL_PE_SDW     (1<<12)     /* Shadow Mode           */
FARL_PE_WDM     (1<<11)     /* Wide Mode             */
FARL_PE_C12M    (1<<10)     /* 12bit Mode            */
FARL_PE_ZCAT    (1<<9)      /* Z Compare Always True */
FARL_PE_OLEN    (1<<8)      /* Overlay Enable        */
FARL_PE_PES     (1<<7)      /* PE sync               */
FARL_PE_DZD     (1<<6)      /* Dither Disable        */
FARL_PE_TLEN    (1<<5)      /* Texture Light Enable  */
FARL_PE_TLM     (1<<4)      /* Texture Light Mode    */
FARL_PE_FOG     (1<<3)      /* Fog Mode              */
FARL_PE_RFOG    (1<<2)      /* R-Fog Mode            */
FARL_PE_FLSH_I  (1<<1)      /* Flash Intensity Mode  */
FARL_PE_FLSH_C  (1<<0)      /* Flash Color Mode      */

《戻り値》
戻り値はありません。


◆２．２．22  PE clear Z value registerのセット 

《名称》
FarlSetPEClearZReg 

《形式》
#include <farl.h>
void FarlSetPEClearZReg(unsigned short d)

《パラメータ》
d :     PE clear z value registerにセットする値

《解説》
PE clear Z value registerに値dをセットします。

《戻り値》
戻り値はありません。


◆２．２．23  PE frame control registerのセット 

《名称》
FarlSetPEFrameCtrlReg

《形式》
#include <farl.h>
void FarlSetPEFrameCtrlReg(unsigned short d)

《パラメータ》
d :     PE frame control registerにセットする値

《解説》
PE frame control registerに値dをセットします。

swapするバッファを指定以下のいずれかから選択できます
FARL_PE_SWP_BUFFER     (2<<1)  /* Swap and switch buffer */
FARL_PE_SWP_BUFFER0    (0<<1)  /* Swap to buffer 0       */
FARL_PE_SWP_BUFFER1    (1<<1)  /* Swap to buffer 1       */

以下のビットをセットすると実際にswap動作を行ないます。
FARL_PE_SWP            (1<<0)  /* Swap                   */

以下のビットをセットすると次のV-Blankでスワップします。
セットしない時は、H-Blankでスワップします。
FARL_PE_SWV            (1<<3)  /* Swap with V-Blank      */

《戻り値》
戻り値はありません。


◆２．２．24  PE clear color value registerのセット 

《名称》
FarlSetPEClearColorReg

《形式》
#include <farl.h>
void FarlSetPEClearColorReg(unsigned short d)

《パラメータ》
d :     PE clear color value registerにセットする値

《解説》
PE clear color value registerに値dをセットします。

《戻り値》
戻り値はありません。


◆２．２．25  PE IC mask registerのセット 

《名称》
FarlSetPEICMaskReg

《形式》
#include <farl.h>
void FarlSetPEICMaskReg(unsigned short d)

《パラメータ》
パラメータはありません。

《解説》
PE IC mask registerに値dをセットします。

以下のいずれかのモードがセットできます。
FARL_ICMASK_I6C3    ARL_IC_MASK0    /* I=6, C=3    */
FARL_ICMASK_I5C4    ARL_IC_MASK1    /* I=5, C=4    */
FARL_ICMASK_I4C5    ARL_IC_MASK2    /* I=4, C=5    */
FARL_ICMASK_I3C6    ARL_IC_MASK3    /* I=3, C=6    */
FARL_ICMASK_C12M    ARL_IC_MASK4    /* 12 Bit Mode */

《戻り値》
戻り値はありません。


◆２．２．26  PE flash IC value registerのセット 

《名称》
FarlSetPEFlashICReg

《形式》
#include <farl.h>
void FarlSetPEFlashICReg(unsigned short d)

《パラメータ》
d :     PE flash IC value registerにセットする値

《解説》
PE flash IC value registerに値dをセットします。

《戻り値》
戻り値はありません。


◆２．２．27  PE clear texture select registerのセット 

《名称》
FarlSetPEClearTextureReg

《形式》
#include <farl.h>
void FarlSetPEClearTextureReg(unsigned short d)

《パラメータ》
d :     PE clear texture select registerにセットする値

《解説》
PE clear texture select registerに値dをセットします。

《戻り値》
戻り値はありません。


◆２．２．28  PE clear mask registerのセット 

《名称》
FarlSetPEClearMaskReg

《形式》
#include <farl.h>
void FarlSetPEClearMaskReg(unsigned short d)

《パラメータ》
d :     PE clear mask registerにセットする値

《解説》
PE clear mask registerに値dをセットします。

《戻り値》
戻り値はありません。


◆２．２．29  PE CWT X offset registerのセット 

《名称》
FarlSetPECwtXOffReg

《形式》
#include <farl.h>
void FarlSetPECwtXOffReg(unsigned short d)

《パラメータ》
d :     PE CWT X offset registerにセットする値

《解説》
PE CWT X offset registerに値dをセットします。 オフセット値は、下位9bitに指定し
ます。MSB 3bitはフラグとして利用され、バンクグループとラップアラウンドのスイッ
チとなっています。

以下のバンクのサイズの設定が可能です。
FARL_PE_CWT_X_BANK1    (1<<13) /* X Bank size 1 bank */
FARL_PE_CWT_X_BANK2    (2<<13) /* X Bank size 2 bank */
FARL_PE_CWT_X_BANK4    (0<<13) /* X Bank size 4 bank */

また、同時に以下のスイッチでX方向のラップが可能となります。
FARL_PE_CWT_XWE        (1<<15) /* X wrap enable      */

《戻り値》
戻り値はありません。


◆２．２．30  PE CWT Y offset registerのセット

《名称》
FarlSetPECwtYOffReg

《形式》
#include <farl.h>
void FarlSetPECwtYOffReg(unsigned short d)

《パラメータ》
d :     PE CWT Y offset registerにセットする値

《解説》
PE CWT Y offset registerに値dをセットします。オフセット値は下位8bitに設定しま
す。 MSB 3bitはフラグ(内2bit)として利用され、バンクグループとラップアラウンド
のスイッチとなっています。

以下のバンクのサイズの設定が可能です。
FARL_PE_CWT_Y_BANK1    (1<<13) /* Y Bank size 1 */
FARL_PE_CWT_Y_BANK2    (0<<13) /* Y Bank size 2 */

また、同時に以下のスイッチでY方向のラップが可能となります。
FARL_PE_CWT_YWE        (1<<15)    /* Y wrap enable */

《戻り値》
戻り値はありません。


◆２．２．31  Fill buffer コマンド 

《名称》
FarlFillBuffer

《形式》
#include <farl.h>
void FarlFillBuffer(unsigned short xl, unsigned short yt, unsigned short xr,
                    unsigned short yb,unsigned short d, unsigned short z)

《パラメータ》
xl :    矩形領域の左端を示すX座標
yt :    矩形領域の上端を示すY座標
xr :    矩形領域の右端を示すX座標
yb :    矩形領域の下端を示すY座標
d  :    Display bufferをフィルするピクセル値
z  :    Z bufferをフィルするZ値

《解説》
PE target register の WBEN フィールドで指定されている Display bufferおよび
Z bufferの、xl, yt, xr, yb で指定される矩形領域を、ピクセル値 d およびZ値 z
でフィルします。

xl, yt, xr, yb は、それぞれデバイス座標系です。

ピクセルデータ d は、PE mask register の設定値でマスクされて Display bufferに書
き込まれます。

PE control register:ZCAT=0ならばZ値比較が行われます。すでに Z bufferに書き込ま
れているZ値によらず常にイメージを書き込みたい場合は ZCAT=1 を設定してください。

《戻り値》
戻り値はありません。


◆２．２．32  Vertex test コマンド 

《名称》
FarlVertexTest

《形式》
#include <farl.h>
void FarlVertexTest(int num, unsigned short v[num][3])

《パラメータ》
num :   頂点数
v   :   頂点座標の配列

《解説》
Vertex testコマンドをnum個の頂点座標 v[num][3]について行ないます。v[num][3] は
頂点座標のx,y,z(<1.0.15>フォーマット)の3値×num個の配列です。

《戻り値》
戻り値はありません。


◆２．２．33  TE sync コマンド

《名称》
FarlTESync

《形式》
#include <farl.h>
void FarlTESync(unsigned short sw)

《パラメータ》
sw :    FARL_NOBLK: 要求のみを送出し、TESYNC Interruptを待ちません。
        FARL_BLK:   TESYNC Interruptの発生をポーリングして待ちます。

《解説》
TEが、TESYNC Interruptを発生します。このコマンドを発行して、割り込み発生を待つ
ことにより、 Vertex testの終了やTE部の他の動作の完了を知ることができます。
パラメータ sw を FARL_NONBLK とすると、リードバックの完了を待たずに要求の
みを送出します。その場合、戻り値はありません。Interrupt status registerのRBDONE
ビットをポーリングするかまたはインタラプトでリードバックの完了を通知された後に
Read back registerから読み出して下さい。

《戻り値》
戻り値はありません。


◆２．２．34  ベクターとマトリクスの演算(1.8.7)

《名称》
FarlMul3x1V1015

《形式》
#include <farl.h>
void FarlMul3x1V1015(unsigned short x, unsigned short y, unsigned short z)

《パラメータ》
x, y, z :   ベクター (<1.0.15>)

《解説》
<1.0.15>フォーマットのベクター(x,y,z)にsource matrix[3][3]を掛け、その結果を
destination matrix[3][1]に書き込みます。積和演算結果が destination matrixに書
き込まれる際、下位15bitが切り捨てられます。

《戻り値》
戻り値はありません。


◆２．２．35  ４×４マトリクスの演算(1.0.15)

《名称》
FarlMul4x4M1015

《形式》
#include <farl.h>
void FarlMul4x4M1015(unsigned short m[4][4])

《パラメータ》
m :     4x4のマトリクス (<1.0.15>または<1.8.7>)

《解説》
source matrix[4][4]に対してマトリクス m[4][4]を掛け、その結果を destination
matrix[4][4]に書き込みます。mのフォーマットは<1.0.15>または<1.8.7>です。

    <1.0.15> = <1.0.15> x <1.0.15>
    <1.8.7>  = <1.0.15> x <1.8.7>

いずれの場合も積和演算結果の下位15ビットが切り捨てられます。

《戻り値》
戻り値はありません。


◆２．２．36  ３×３マトリクスの演算(1.0.15)

《名称》
FarlMul3x3M1015

《形式》
#include <farl.h>
void FarlMul3x3M1015(unsigned short m[3][3])

《パラメータ》
m :     3x3のマトリクス (<1.0.15>または<1.8.7>)

《解説》
source matrix[3][3]に対してマトリクス m[3][3]を掛け、その結果を destination
matrix[3][3]に書き込みます。mのフォーマットは<1.0.15>または<1.8.7>です。

    <1.0.15> = <1.0.15> x <1.0.15>
    <1.8.7>  = <1.0.15> x <1.8.7>

いずれの場合も下位15ビットが切り捨てられます。

《戻り値》
戻り値はありません。


◆２．２．37  ４×４マトリクスの演算(1.8.7)

《名称》
FarlMul4x4M187

《形式》
#include <farl.h>
void FarlMul4x4M187(unsigned short m[4][4])

《パラメータ》
m :     4x4のマトリクス (<1.8.7>)

《解説》
source matrix[4][4]に対して<1.8.7>フォーマットのマトリクス m[4][4]を掛け、その
結果をdestination matrix[4][4]に書き込みます。

    <1.8.7>  = <1.8.7> x <1.8.7>

積和演算結果がdestination matrixに書き込まれる際、整数部の上位8bitと小数部の下
位7bitが切捨てられます。

《戻り値》
戻り値はありません。


◆２．２．38  ３×３マトリクスの演算(1.8.7)

《名称》
FarlMul3x3M187

《形式》
#include <farl.h>
void FarlMul3x3M187(unsigned short m[3][3])

《パラメータ》
m :     3x3のマトリクス (<1.8.7>)

《解説》
source matrix[3][3]に対して<1.8.7>フォーマットのマトリクス m[3][3]を掛け、その
結果をdestination matrix[3][3]に書き込みます。

    <1.8.7>  = <1.8.7> x <1.8.7>

積和演算結果がdestination matrixに書き込まれる際、整数部の上位8bitと小数部の下
位7bitが切捨てられます。

《戻り値》
戻り値はありません。


◆２．２．39  マトリクスのコピー(DST-->SRC/4x4)

《名称》
FarlCopyDstToSrc

《形式》
#include <farl.h>
void FarlCopyDstToSrc()

《パラメータ》
パラメータはありません。

《解説》
destination matrix[4][4]をsource matrix[4][4]にコピーします。

《戻り値》
戻り値はありません。

◆２．２．40  マトリクスのコピー(DST-->OBJ/4x4)

《名称》
FarlCopyDstToObj

《形式》
#include <farl.h>
void FarlCopyDstToObj()

《パラメータ》
パラメータはありません。

《解説》
destination matrix[4][4]を TE object matrix[4][4]にコピーします。

《戻り値》
戻り値はありません。

◆２．２．41  マトリクスのコピー(DST-->NRM/3x3)

《名称》
FarlCopyDstToNrm

《形式》
#include <farl.h>
void FarlCopyDstToNrm()

《パラメータ》
パラメータはありません。

《解説》
destination matrix[3][3]を TE normal matrix[3][3]にコピーします。

《戻り値》
戻り値はありません。


◆２．２．42  マトリクスのコピー(DST-->RST/16)

《名称》
FarlCopyDstToRst

《形式》
#include <farl.h>
void FarlCopyDstToRst()

《パラメータ》
パラメータはありません。

《解説》
destination matrix[4][4]をResult register[16]にコピーします。

《戻り値》
戻り値はありません。


◆２．２．43  マトリクスのコピー(SRC-->RST/6)

《名称》
FarlCopySrcToRst

《形式》
#include <farl.h>
void FarlCopySrcToRst()

《パラメータ》
パラメータはありません。

《解説》
source matrix[0..5]をResult register[0..5]にコピーします。主にsource matrixか
らVertex testコマンドの結果を得る時に使います。

《戻り値》
戻り値はありません。


◆２．２．44  マトリクスのコピー(RST-->SRC/4x4)

《名称》
FarlCopyRstToSrc

《形式》
#include <farl.h>
void FarlCopyRstToSrc()

《パラメータ》
パラメータはありません。

《解説》
Result register[16]をsource matrix[4][4]にコピーします。

《戻り値》
戻り値はありません。


◆２．２．45  ライトベクターのコピー(DST-->LGT1/3)

《名称》
FarlCopyDstToLgt1

《形式》
#include <farl.h>
void FarlCopyDstToLgt1()

《パラメータ》
パラメータはありません。

《解説》
destination matrix[0..2]を TE light1 vectorにコピーします。

《戻り値》
戻り値はありません。


◆２．２．46  ライトベクターのコピー(DST-->LGT2/3)

《名称》
FarlCopyDstToLgt2

《形式》
#include <farl.h>
void FarlCopyDstToLgt2()

《パラメータ》
パラメータはありません。

《解説》
destination matrix[0..2]を TE light2 vectorにコピーします。

《戻り値》
戻り値はありません。


◆２．２．47  Overlay LUT[1]のセット

《名称》
FarlSetLut1

《形式》
#include <farl.h>
void FarlSetLut1(unsigned short d)

《パラメータ》
d :     LUT[1]にセットする値

《解説》
LUT[1]に値dをセットします。

《戻り値》
戻り値はありません。


◆２．２．48  Overlay LUT[2]のセット 

《名称》
FarlSetLut2

《形式》
#include <farl.h>
void FarlSetLut2(unsigned short d)

《パラメータ》
d :     LUT[2]にセットされる値

《解説》
LUT[2]に値dをセットします。

《戻り値》
戻り値はありません。


◆２．２．49  Overlay LUT[3]のセット 

《名称》
FarlSetLut3

《形式》
#include <farl.h>
void FarlSetLut3(unsigned short d)

《パラメータ》
d :     LUT[3]にセットされる値

《解説》
LUT[3]に値dをセットします。

《戻り値》
戻り値はありません。


◆２．２．50  Triangle stripの描画

《名称》
FarlTriangleStrip

《形式》
#include <farl.h>
int FarlTriangleStrip(int type, int nelem, unsigned short *vert,
                      unsigned short *norm, unsigned short *color,
                      unsigned short *vtexi)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つトライアングルストリップを描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの頂点色を頂点数個のunsigned shortの配列にしたもの
        です。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つトライアングルストリップを描
                    画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの頂点色を頂点数個のunsigned shortの配列にしたもの
        です。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つトライアングルストリップを描画し
                    ます。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの面色を nelem個の unsigned short の配列にしたもの
        です。

・FARL_GTYPE_TX :   テクスチャを張り付けたトライアングルストリップを描画しま
                    す。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。

・FARL_GTYPE_TXVN : テクスチャを張り付けた頂点ノーマルを持つトライアングルスト
                    リップを描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx, ny, nzの順に頂点数×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。

・FARL_GTYPE_TXFN : テクスチャを張り付けた面ノーマルを持つトライアングルストリ
                    ップを描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DC :   トライアングルストリップをTE default color registerで指定
                    された色で描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つトライアングルストリップを
                    TE default color registerで指定された色で描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。

norm :  各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx, ny, nzの順に頂点数×3個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DCFN : 面ノーマルを持つトライアングルストリップを
                    TE default color registerで指定された色で描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。

《解説》
nelem個のトライアングルからなるトライアングルストリップを描画します。

トライアングルストリップの場合最初のトライアングルを除き1つのトライアングルを
1頂点であらわしますので、トライアングルストリップ全体を構成する頂点数はnelem+2
個となります。(最初のトライアングルは1トライアングル3頂点であらわします。)

引数typeにより引数として渡すパラメータは必要なものおよびその意味が異なります。
設定できるtypeとその時に必要なパラメータおよびその意味は下記の通りです。
必要でないパラメータには何を渡しても構いませんが通常はNULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_VCVN      type, nelem, vert, norm, color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_TX        type, nelem, vert,     ,       , vtexi
FARL_GTYPE_TXVN      type, nelem, vert, norm,       , vtexi
FARL_GTYPE_TXFN      type, nelem, vert, norm,       , vtexi
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCVN      type, nelem, vert, norm
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
    0:    正常終了
   -1:    タイプ(type)の値が無効


◆２．２．51  Triangle listの描画

《名称》
FarlTriangleList

《形式》
#include <farl.h>
int FarlTriangleList(int type, int nelem, unsigned short *vert,
                     unsigned short *norm, unsigned short *color,
                     unsigned short *vtexi)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つトライアングルリストを描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの頂点色を頂点数個のunsigned shortの配列にしたもの
        です。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つトライアングルリストを描画し
                    ます。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの頂点色を頂点数個のunsigned shortの配列にしたもの
        です。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つトライアングルリストを描画しま
                    す。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの面色を nelem個の unsigned short の配列にしたもの
        です。

・FARL_GTYPE_TX :   テクスチャを張り付けたトライアングルリストを描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。

・FARL_GTYPE_TXVN : テクスチャを張り付けた頂点ノーマルを持つトライアングルリス
                    トを描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx, ny, nzの順に頂点数×3個のunsigned shortの配列にしたものです。
vtexi : 各々のライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂点
        数×2個のunsigned shortの配列にしたものです。

・FARL_GTYPE_TXFN : テクスチャを張り付けた面ノーマルを持つトライアングルリスト
                    を描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DC :   トライアングルリストをTE default color registerで指定され
                    た色で描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つトライアングルリストをTE default color 
                    registerで指定された色で描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx, ny, nzの順に頂点数×3個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DCFN : 面ノーマルを持つトライアングルリストをTE default color
                    registerで指定された色で描画します。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。

《解説》
nelem個のトライアングルからなるトライアングルリストを描画します。

トライアングルリストの場合1つのトライアングルを3頂点であらわしますので、トライ
アグルリスト全体を構成する頂点数はnelem×3個となります。

引数typeにより引数として渡すパラメータは必要なものおよびその意味が異なります。
設定できるtypeとその時に必要なパラメータおよびその意味は下記の通りです。
必要でないパラメータには何を渡しても構いませんが通常はNULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_VCVN      type, nelem, vert, norm, color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_TX        type, nelem, vert,     ,       , vtexi
FARL_GTYPE_TXVN      type, nelem, vert, norm,       , vtexi
FARL_GTYPE_TXFN      type, nelem, vert, norm,       , vtexi
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCVN      type, nelem, vert, norm
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
    0:    正常終了
   -1:    タイプ(type)の値が無効


◆２．２．52  Poly lineの描画

《名称》
FarlPolyLine 

《形式》
#include <farl.h>
int FarlPolyLine(int type, int nelem, unsigned short *vert,
                 unsigned short *norm, unsigned short *color )

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つポリラインを描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
color : 各々のラインの頂点色を頂点数個のunsigned shortの配列にしたものです。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つポリラインを描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nz
        の順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のラインの頂点色を頂点数個のunsigned shortの配列にしたものです。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つポリラインを描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの
        順にnelem×3個のunsigned shortの配列にしたものです。
color : 各々のラインの面色をnelem個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DC :   ポリラインをTE default color registerで指定された色で描画
                    します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つポリラインをTE default color registerで
                    指定された色で描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm :  各々のラインの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx, ny,
        nzの順に頂点数×3個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DCFN : 面ノーマルを持つポリラインをTE default color registerで指
                    定された色で描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの
        順にnelem×3個のunsigned shortの配列にしたものです。

《解説》
nelem個のラインからなるポリラインを描画します。

ポリラインの場合最初のラインを除いて1つのラインを1頂点であらわしますので、ポリ
ライン全体を構成する頂点数はnelem+1個となります。(最初のラインは1ライン2頂点で
あらわします。)

引数typeにより引数として渡すパラメータは必要なものおよびその意味が異なります。
設定できるtypeとその時に必要なパラメータおよびその意味は下記の通りです。
必要でないパラメータには何を渡しても構いませんが通常はNULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_VCVN      type, nelem, vert, norm, color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCVN      type, nelem, vert, norm
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
   0:   正常終了
  -1:   タイプ(type)の値が無効


◆２．２．53  Line listの描画

《名称》
FarlLineList 

《形式》
#include <farl.h>
int FarlLineList(int type, int nelem, unsigned short *vert,
                 unsigned short *norm, unsigned short *color )

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つラインリストを描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
color : 各々のラインの頂点色を頂点数個のunsigned shortの配列にしたものです。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つラインリストを描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nz
        の順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のラインの頂点色を頂点数個のunsigned shortの配列にしたものです。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つラインリストを描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの
        順にnelem×3個のunsigned shortの配列にしたものです。
color : 各々のラインの面色をnelem個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DC :   ラインリストをTE default color registerで指定された色で描
                    画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つラインリストをTE default color register
                    で指定された色で描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx, ny, 
        nzの順に頂点数×3個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DCFN : 面ノーマルを持つラインリストをTE default color registerで
                    指定された色で描画します。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの
        順にnelem×3個のunsigned shortの配列にしたものです。

《解説》
nelem個のラインからなるラインリストを描画します。

ラインリストの場合 1つのラインを2頂点であらわしますのでラインリスト全体を構成
する頂点数はnelem×2個となります。引数typeにより引数として渡すパラメータは必要
なものおよびその意味が異なります。設定できるtypeとその時に必要なパラメータおよ
び、その意味は下記の通りです。必要でないパラメータには何を渡しても構いませんが
通常はNULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_VCVN      type, nelem, vert, norm, color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCVN      type, nelem, vert, norm
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
    0:  正常終了
   -1:  タイプ(type)の値が無効

◆２．２．54  Point listの描画

《名称》
FarlPointList

《形式》
#include <farl.h>
int FarlPointList(int type, int nelem, unsigned short *vert,
                  unsigned short *norm, unsigned short *color)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つポイントリストを描画します。
nelem : 描画する頂点の数です。
vert  : 各々の頂点の座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順にnelem×3
        個のunsigned shortの配列にしたものです。
color : 各々の頂点の色をnelem個のunsigned shortの配列にしたものです。

・FARL_GTYPE_FCFN : 頂点色および頂点ノーマルを持つポイントリストを描画します。
nelem : 描画する頂点の数です。
vert  : 各々の頂点の座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順にnelem×3
        個のunsigned shortの配列にしたものです。
norm  : 各々の頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの順に
        nelem×3個のunsigned shortの配列にしたものです。
color : 各々の頂点の色をnelem個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DC :   ポイントリストを TE default color registerで指定された色で
                    描画します。
nelem : 描画する頂点の数です。
vert  : 各々の頂点の座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順にnelem×3
        個のunsigned shortの配列にしたものです。

・FARL_GTYPE_DCFN : 頂点ノーマルを持つポイントリストを TE default color
                    registerで指定された色で描画します。
nelem : 描画する頂点の数です。
vert  : 各々の頂点の座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順にnelem×3
        個のunsigned shortの配列にしたものです。
norm  :  各々の頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの順に
         nelem×3個のunsigned shortの配列にしたものです。

《解説》
nelem個のポイント(頂点)を描画します。

引数typeにより引数として渡すパラメータは必要なものおよびその意味が異なります。
設定できるtypeとその時に必要なパラメータおよびその意味は下記の通りです。必要で
ないパラメータには何を渡しても構いませんが通常はNULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
    0:  正常終了
   -1:  タイプ(type)の値が無効

◆２．２．55  イメージのダウンロード

《名称》
FarlPutImage

《形式》
#include <farl.h>
void FarlPutImage(unsigned short *img, int xleft, int ytop,int xright,
                  int ybottom, unsigned short z)

《パラメータ》
img    :Display bufferに書き込むイメージデータを格納した、unsigned short配列の
        先頭アドレス。配列の 1要素が 1ピクセルを表します。
xleft  :矩形領域の左端を示すX座標
ytop   :矩形領域の上端を示すY座標
xright :矩形領域の右端を示すX座標
ybottom:矩形領域の下端を示すY座標
z      :Z bufferに書き込むZ値

《解説》
Z値付きのイメージデータを Display bufferにダウンロードします。この関数ではピク
セル毎のZ値を指定するわけではありません。一定のZ値でフィルされます。

PE target register の WBENフィールドで指定されている Display bufferおよび
Z bufferの、xleft, ytop, xright, ybottom で指定される矩形領域に、img が示すイ
メージデータとZ値 z を書き込みます。

xleft, ytop, xright, ybottom は、それぞれデバイス座標系です。

各ピクセルデータは、PE mask registerの設定値でマスクされて Display bufferに書き
込まれます。

PE control register:ZCAT=0ならばZ値比較が行われます。すでに Z bufferに書き込ま
れている値よりも z が小さければ、そのピクセルデータと z は書き込まれません。す
でに Z buffer書き込まれているZ値によらず常にイメージと z を書き込みたい場合は
ZCAT=1 を設定してください。

《戻り値》
戻り値はありません。

◆２．２．56  イメージのダウンロード(Z付き)

《名称》
FarlPutDZImage

《形式》
#include <farl.h>
void FarlPutDZImage(unsigned short *img, int xleft, int ytop, int xright,
                    int ybottom)

《パラメータ》
img     :Display bufferおよび Z bufferに書き込むZ値つきイメージデータを格納した
         unsigned short配列の先頭アドレス。配列の 2要素で 1ピクセルを表し、うち
         1番目の要素がピクセルデータ、2番目の要素がZ値を表します。
xleft  :矩形領域の左端を示すX座標
ytop   :矩形領域の上端を示すY座標
xright :矩形領域の右端を示すX座標
ybottom:矩形領域の下端を示すY座標

《解説》
PE target register の WBENフィールドで指定されているDisplay bufferおよび
Z bufferの、xleft, ytop, xright, ybottom で指定される矩形領域に、img が示すイ
メージデータとZ値を書き込みます。 FarlPutImage との違いは、各ピクセル毎にZ値を
持たせていることです。データは、d0, z0, d1, z1, d2, z2 .....という順で配列 img
にセットされていなければなりません。

xleft, ytop, xright, ybottom は、それぞれデバイス座標系です。

各ピクセルデータは、PE mask registerの設定値でマスクされて Display bufferに書き
込まれます。

PE control register:ZCAT=0ならばZ値比較が行われます。すでに Z bufferに書き込ま
れているZ値によらず常にバッファをフィルしたい場合はZCAT=1を設定してください。

《戻り値》
戻り値はありません。


◆２．２．57  テクスチャのダウンロード

《名称》
FarlPutTextureImage

《形式》
#include <farl.h>
void FarlPutTextureImage(unsigned short *img, int xleft, int ytop,
                         int xright, int ybottom)

《パラメータ》
img    :ダウンロードするイメージデータを格納した unsigned short 配列の先頭アド
        レス。配列の 1要素が 1テクセルに対応します。
xleft  :ダウンロード先の矩形領域の左端を示すバンク内X座標
ytop   :ダウンロード先の矩形領域の上端を示すバンク内Y座標
xright :ダウンロード先の矩形領域の右端を示すバンク内X座標
ybottom:ダウンロード先の矩形領域の下端を示すバンク内Y座標

《解説》
PE texture select register で選択されている Texture bufferの、
xleft, ytop, xright, ybottom で指定される矩形領域に、imgが示すイメージデータを
ダウンロードします。なお、FarlPutTextureImage は、 PE Control register:C12M の
設定により下記のように動作が異なります。

・C12M=0(9bitモード)の場合
  配列の各要素(各テクセルデータ)のbit0..11の12ビットデータを、PE IC mask
  register にしたがって 9bitにパックして Texture bufferに書き込みます。

・C12M=1(12bitモード)の場合
  bit0..11の12ビットデータをそのまま Texture bufferに書き込みます。(Texture
  bufferが 9bit幅である場合、上位 3ビットは消失します)。

《戻り値》
戻り値はありません。


＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

■２．３  Utility Functions

◆２．３．１  Triangle stripコマンドのダンプ

《名称》
FarlDumpTriangleStrip 

《形式》
#include <farl.h>
int FarlDumpTriangleStrip(int type, int nelem, unsigned short *vert,
                          unsigned short *norm, unsigned short *color,
                          unsigned short *vtexi, unsigned short *dbuff)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つトライアングルストリップを描画するコマンドデー
                    タをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの頂点色を頂点数個のunsigned shortの配列にしたもの
        です。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つトライアングルストリップを描
                    画するコマンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの頂点色を頂点数個のunsigned shortの配列にしたもの
        です。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つトライアングルストリップを描画す
                    るコマンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの面色を nelem個の unsigned short の配列にしたもの
        です。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_TX :   テクスチャを張り付けたトライアングルストリップを描画するコ
                    マンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_TXVN : テクスチャを張り付けた頂点ノーマルを持つトライアングルスト
                    リップを描画するコマンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx, ny, nzの順に頂点数×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。この領域は既に領域確保されて
        いる偶数個の16bit wordでなければなりません。

・FARL_GTYPE_TXFN : テクスチャを張り付けた面ノーマルを持つトライアングルストリ
                    ップを描画するコマンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DC :   トライアングルストリップをTE default color registerで指定
                    された色で描画するコマンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つトライアングルストリップを
                    TE default color registerで指定された色で描画するコマンド
                    データをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx, ny, nzの順に頂点数×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。この領域は既に領域確保されて
        いる偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DCFN : 面ノーマルを持つトライアングルストリップをTE default color
                    registerで指定された色で描画するコマンドデータをダンプしま
                    す。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。この領域は既に領域確保されて
        いる偶数個の16bit wordでなければなりません。

《解説》
 nelem個のトライアングルからなるトライアングルストリップを描画するコマンドデー
タをダンプします。

トライアングルストリップの場合、最初のトライアングルを除き1つのトライアングル
を 1頂点であらわしますので、トライアングルストリップ全体を構成する頂点数は
nelem+2個となります。
(最初のトライアングルは1トライアングル3頂点であらわします。)

戻り値は、コマンドデータの長さ(16bit wordの数)を返します。引数 dbuffで示される
データ領域は偶数個の16bit wordでなければなりません。この関数ではデータが奇数個
の16bit wordであった場合最終16bit wordを0でpaddingします。

引数 typeにより引数として渡すパラメータは必要なものおよびその意味が異なりま
す。設定できる typeとその時に必要なパラメータおよびその意味は下記の通りです。
必要でないパラメータには何を渡しても構いませんが通常は NULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_VCVN      type, nelem, vert, norm, color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_TX        type, nelem, vert,     ,       , vtexi
FARL_GTYPE_TXVN      type, nelem, vert, norm,       , vtexi
FARL_GTYPE_TXFN      type, nelem, vert, norm,       , vtexi
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCVN      type, nelem, vert, norm
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: コマンドデータの長さ(16bit wordの数)


◆２．３．２  Triangle listコマンドのダンプ

《名称》
FarlDumpTriangleList

《形式》
#include <farl.h>
int FarlDumpTriangleList(int type, int nelem, unsigned short *vert,
                         unsigned short *norm, unsigned short *color,
                         unsigned short *vtexi, unsigned short *dbuff)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つトライアングルリストを描画するコマンドデータを
                    ダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの頂点色を頂点数個のunsigned shortの配列にしたもの
        です。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つトライアングルリストを描画す
                    るコマンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの頂点色を頂点数個のunsigned shortの配列にしたもの
        です。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つトライアングルリストを描画するコ
                    マンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
color : 各々のトライアングルの面色を nelem個の unsigned short の配列にしたもの
        です。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_TX :   テクスチャを張り付けたトライアングルリストを描画するコマン
                    ドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_TXVN : テクスチャを張り付けた頂点ノーマルを持つトライアングルリス
                    トを描画するコマンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx, ny, nzの順に頂点数×3個のunsigned shortの配列にしたものです。
vtexi : 各々のライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂点
        数×2個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_TXFN : テクスチャを張り付けた面ノーマルを持つトライアングルリスト
                    を描画するコマンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
vtexi : 各々のトライアングルの頂点のテクスチャ座標(u,v)  (0〜255)をu,vの順に頂
        点数×2個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DC :   トライアングルリストをTE default color registerで指定され
                    た色で描画するコマンドデータをダンプします。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つトライアングルリストを TE default color 
                    registerで指定された色で描画するコマンドデータをダンプしま
                    す。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx, ny, nzの順に頂点数×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DCFN : 面ノーマルを持つトライアングルリストを TE default color
                    registerで指定された色で描画するコマンドデータをダンプしま
                    す。
nelem : 描画するトライアングルの数です。
vert  : 各々のトライアングルの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, z
        の順に頂点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のトライアングルの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)を
        nx,ny,nzの順にnelem×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

《解説》
nelem個のトライアングルからなるトライアングルリストを描画するコマンドデータを
ダンプします。

トライアングルリストの場合1つのトライアングルを3頂点であらわしますのでトライア
ングルリスト全体を構成する頂点数はnelem×3個となります。

戻り値は、パケットの長さ(16bit wordの数)を返します。
引数dbuffで指定されるデータ領域は既に領域確保されている偶数個の16bit wordでな
ければなりません。この関数ではデータが奇数個の16bit wordであった場合最終16bit 
wordを0でpaddingします。

引数typeにより引数として渡すパラメータは必要なものおよびその意味が異なります。
設定できるtypeとその時に必要なパラメータおよびその意味は下記の通りです。必要で
ないパラメータには何を渡しても構いませんが通常はNULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_VCVN      type, nelem, vert, norm, color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_TX        type, nelem, vert,     ,       , vtexi
FARL_GTYPE_TXVN      type, nelem, vert, norm,       , vtexi
FARL_GTYPE_TXFN      type, nelem, vert, norm,       , vtexi
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCVN      type, nelem, vert, norm
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: コマンドデータの長さ(16bit wordの数)


◆２．３．３  Poly lineコマンドのダンプ

《名称》
FarlDumpPolyLine 

《形式》
#include <farl.h>
int FarlDumpPolyLine(int type, int nelem, unsigned short *vert,
                     unsigned short *norm, unsigned short *color,
                     unsigned short *dbuff)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つポリラインを描画するコマンドデータをダンプしま
                    す。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
color : 各々のラインの頂点色を頂点数個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つポリラインを描画するコマンド
                    データをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nz
        の順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のラインの頂点色を頂点数個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つポリラインを描画するコマンドデー
                    タをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの
        順にnelem×3個のunsigned shortの配列にしたものです。
color : 各々のラインの面色をnelem個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DC :   ポリラインを TE default color registerで指定された色で描画
                    するコマンドデータをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つポリラインを TE default color registerで
                    指定された色で描画するコマンドデータをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx, ny, 
        nzの順に頂点数×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DCFN : 面ノーマルを持つポリラインを TE default color registerで指
                    定された色で描画するコマンドデータをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの
        順にnelem×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

《解説》
nelem個のラインからなるポリラインを描画するコマンドデータをダンプします。

ポリラインの場合最初のラインを除いて1つのラインを1頂点であらわしますのでポリラ
イン全体を構成する頂点数は nelem+1個となります。(最初のラインは1ライン2頂点で
あらわします。)

戻り値は、パケットの長さ(16bitwordの数)を返します。引数dbuffで示されるデータ領
域は偶数個の16bit wordでなければなりません。この関数ではデータが奇数個の16bit 
wordであった場合最終16bit wordを0でpaddingします。

引数typeにより引数として渡すパラメータは必要なものおよびその意味が異なります。
設定できるtypeとその時に必要なパラメータおよびその意味は下記の通りです。必要で
ないパラメータには何を渡しても構いませんが通常はNULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_VCVN      type, nelem, vert, norm, color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCVN      type, nelem, vert, norm
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: コマンドデータの長さ(16bit wordの数)


◆２．３．４  Line listコマンドのダンプ

《名称》
FarlDumpLineList

《形式》
#include <farl.h>
int FarlDumpLineList(int type, int nelem, unsigned short *vert,
                     unsigned short *norm, unsigned short *color,
                     unsigned short *dbuff)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つラインリストを描画するコマンドデータをダンプし
                    ます。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
color : 各々のラインの頂点色を頂点数個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。この領域は既に領域確保されて
        いる偶数個の16bit wordでなければなりません。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つラインリストを描画するコマン
                    ドデータをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nz
        の順に頂点数×3個のunsigned shortの配列にしたものです。
color : 各々のラインの頂点色を頂点数個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つラインリストを描画するコマンド
                    データをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの
        順にnelem×3個のunsigned shortの配列にしたものです。
color : 各々のラインの面色をnelem個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DC :   ラインリストを TE default color registerで指定された色で描
                    画するコマンドデータをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つラインリストを TE default color register
                    で指定された色で描画するコマンドデータをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx, ny, 
        nzの順に頂点数×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DCFN : 面ノーマルを持つラインリストを TE default color registerで
                    指定された色で描画するコマンドデータをダンプします。
nelem : 描画するラインの数です。
vert  : 各々のラインの頂点座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順に頂
        点数×3個のunsigned shortの配列にしたものです。
norm  : 各々のラインの面ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの
        順にnelem×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

《解説》
nelem個のラインからなるラインリストを描画するコマンドデータをダンプします。

ラインリストの場合1つのラインを2頂点であらわしますのでラインリスト全体を構成す
る頂点数はnelem×2個となります。

戻り値はパケットの長さ(16bitwordの数)を返します。引数dbuffで示されるデータ領域
は偶数個の16bit wordでなければなりません。この関数ではデータが奇数個の
16bit wordであった場合最終16bit wordを0でpaddingします。

引数 typeにより引数として渡すパラメータは必要なものおよびその意味が異なりま
す。設定できる typeとその時に必要なパラメータおよびその意味は下記の通りです。
必要でないパラメータには何を渡しても構いませんが通常はNULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_VCVN      type, nelem, vert, norm, color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCVN      type, nelem, vert, norm
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: コマンドデータの長さ(16bit wordの数)


◆２．３．５  Point listコマンドのダンプ

《名称》
FarlDumpPointList 

《形式》
#include <farl.h>
int FarlDumpPointList(int type, int nelem, unsigned short *vert,
                      unsigned short *norm, unsigned short *color,
                      unsigned short *dbuff)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つポイントリストを描画するコマンドデータをダンプ
                    します。
nelem : 描画する頂点の数です。
vert  : 各々の頂点の座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順にnelem×3
        個のunsigned shortの配列にしたものです。
color : 各々の頂点の色をnelem個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_FCFN : 頂点色および頂点ノーマルを持つポイントリストを描画するコマ
                    ンドデータをダンプします。
nelem : 描画する頂点の数です。
vert  : 各々の頂点の座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順にnelem×3
        個のunsigned shortの配列にしたものです。
norm  : 各々の頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの順に
        nelem×3個のunsigned shortの配列にしたものです。
color : 各々の頂点の色をnelem個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DC :   ポイントリストを TE default color registerで指定された色で
                    描画するコマンドデータをダンプします。
nelem : 描画する頂点の数です。
vert  : 各々の頂点の座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順にnelem×3
        個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

・FARL_GTYPE_DCFN : 頂点ノーマルを持つポイントリストを TE default color
                    registerで指定された色で描画するコマンドデータをダンプしま
                    す。
nelem : 描画する頂点の数です。
vert  : 各々の頂点の座標(x, y, z)(<1.0.15>フォーマット)をx, y, zの順にnelem×3
        個のunsigned shortの配列にしたものです。
norm  : 各々の頂点ノーマル(nx, ny, nz)(<1.0.15>フォーマット)をnx,ny,nzの順に
        nelem×3個のunsigned shortの配列にしたものです。
dbuff : コマンドデータが格納されるデータ領域です。 この領域は既に領域確保され
        ている偶数個の16bit wordでなければなりません。

《解説》
nelem個のポイント(頂点)を描画するコマンドデータをダンプします。

戻り値はパケットの長さ(16bitwordの数)を返します。引数dbuffで示されるデータ領域
は偶数個の16bit wordでなければなりません。この関数ではデータが奇数個の
16bit wordであった場合最終16bit wordを0でpaddingします。

引数 typeにより引数として渡すパラメータは必要なものおよびその意味が異なりま
す。設定できる typeとその時に必要なパラメータおよびその意味は下記の通りです。
必要でないパラメータには何を渡しても構いませんが通常はNULLをセットします。

タイプ(type)        パラメータ
FARL_GTYPE_VC        type, nelem, vert,       color
FARL_GTYPE_FCFN      type, nelem, vert, norm, color
FARL_GTYPE_DC        type, nelem, vert
FARL_GTYPE_DCFN      type, nelem, vert, norm

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: コマンドデータの長さ(16bit wordの数)


◆２．３．６  Triangle stripコマンドのサイズの取得

《名称》
FarlGetTriangleStripSize

《形式》
#include <farl.h>
int FarlGetTriangleStripSize(int type, int nelem)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つトライアングルストリップを描画するコマンドデー
                    タのサイズを返します。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つトライアングルストリップを描
                    画するコマンドデータのサイズを返します。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つトライアングルストリップを描画す
                    るコマンドデータのサイズを返します。

・FARL_GTYPE_TX :   テクスチャを張り付けたトライアングルストリップを描画するコ
                    マンドデータのサイズを返します。

・FARL_GTYPE_TXVN : テクスチャを張り付けた頂点ノーマルを持つトライアングルスト
                    リップを描画するコマンドデータのサイズを返します。

・FARL_GTYPE_TXFN : テクスチャを張り付けた面ノーマルを持つトライアングルストリ
                    ップを描画するコマンドデータのサイズを返します。

・FARL_GTYPE_DC :   トライアングルストリップを TE default color registerで指定
                    された色で描画するコマンドデータのサイズを返します。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つトライアングルストリップを
                     TE default color registerで指定された色で描画するコマンド
                    データのサイズを返します。

・FARL_GTYPE_DCFN : 面ノーマルを持つトライアングルストリップをTE default color
                    registerで指定された色で描画するコマンドデータのサイズを返
                    します。

《解説》
トライアングルストリップのコマンドデータのサイズ(16bit wordの数)を返します。

引数nelemには描画するトライアングルの数を指定します。
引数typeに設定できる値とその意味は FarlDumpTriangleStrip と同じです。

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: パケットの長さ(16bit wordの数)


◆２．３．７  Triangle listコマンドのサイズの取得

《名称》
FarlGetTriangleListSize

《形式》
#include <farl.h>
int FarlGetTriangleListSize(int type, int nelem)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つトライアングルリストを描画するコマンドデータの
                    サイズを返します。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つトライアングルリストを描画す
                    るコマンドデータのサイズを返します。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つトライアングルリストを描画するコ
                    マンドデータのサイズを返します。

・FARL_GTYPE_TX :   テクスチャを張り付けたトライアングルリストを描画するコマン
                    ドデータのサイズを返します。

・FARL_GTYPE_TXVN : テクスチャを張り付けた頂点ノーマルを持つトライアングルリス
                    トを描画するコマンドデータのサイズを返します。

・FARL_GTYPE_TXFN : テクスチャを張り付けた面ノーマルを持つトライアングルリスト
                    を描画するコマンドデータのサイズを返します。

・FARL_GTYPE_DC :   トライアングルリストを TE default color registerで指定され
                    た色で描画するコマンドデータのサイズを返します。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つトライアングルリストを TE default color 
                    registerで指定された色で描画するコマンドデータのサイズを返
                    します。

・FARL_GTYPE_DCFN : 面ノーマルを持つトライアングルリストを TE default color
                    registerで指定された色で描画するコマンドデータのサイズを返
                    します。

《解説》
トライアングルリストのコマンドデータのサイズ(16bit wordの数)を返します。

引数nelemには描画するトライアングルの数を指定します。
引数typeに設定できる値とその意味は FarlDumpTriangleList と同じです。

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: コマンドデータの長さ(16bit wordの数)


◆２．３．８  Poly lineコマンドのサイズの取得

《名称》
FarlGetPolyLineSize

《形式》
#include <farl.h>
int FarlGetPolyLineSize(int type, int nelem)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つポリラインを描画するコマンドデータのサイズを返
                    します。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つポリラインを描画するコマンド
                    データのサイズを返します。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つポリラインを描画するコマンドデー
                    タのサイズを返します。

・FARL_GTYPE_DC :   ポリラインを TE default color registerで指定された色で描画
                    するコマンドデータのサイズを返します。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つポリラインを TE default color registerで
                    指定された色で描画するコマンドデータのサイズを返します。

・FARL_GTYPE_DCFN : 面ノーマルを持つポリラインを TE default color registerで指
                    定された色で描画するコマンドデータのサイズを返します。

《解説》
ポリラインのコマンドデータのサイズ(16bit wordの数)を返します。

引数nelemには描画するラインの数を指定します。
引数typeに設定できる値とその意味は FarlDumpPolyLine と同じです。

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: コマンドデータの長さ(16bit wordの数)


◆２．３．９  Line listコマンドのサイズの取得

《名称》
FarlGetLineListSize

《形式》
#include <farl.h>
int FarlGetLineListSize(int type, int nelem)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つラインリストを描画するコマンドデータのサイズを
                    返します。

・FARL_GTYPE_VCVN : 頂点色および頂点ノーマルを持つラインリストを描画するコマン
                    ドデータのサイズを返します。

・FARL_GTYPE_FCFN : 面色および面ノーマルを持つラインリストを描画するコマンド
                    データのサイズを返します。

・FARL_GTYPE_DC :   ラインリストを TE default color registerで指定された色で描
                    画するコマンドデータのサイズを返します。

・FARL_GTYPE_DCVN : 頂点ノーマルを持つラインリストを TE default color register
                    で指定された色で描画するコマンドデータのサイズを返します。

・FARL_GTYPE_DCFN : 面ノーマルを持つラインリストを TE default color registerで
                    指定された色で描画するコマンドデータのサイズを返します。

《解説》
ラインリストのコマンドデータのサイズ(16bit wordの数)を返します。

引数nelemには描画するラインの数を指定します。
引数typeに設定できる値とその意味は FarlDumpLineList と同じです。

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: コマンドデータの長さ(16bit wordの数)


◆２．３．10  Point listコマンドのサイズの取得

《名称》
FarlGetPointListSize

《形式》
#include <farl.h>
int FarlGetPointListSize(int type, int nelem)

《パラメータ》
・FARL_GTYPE_VC :   頂点色を持つポイントリストを描画するコマンドデータのサイズ
                    を返します。

・FARL_GTYPE_FCFN : 頂点色および頂点ノーマルを持つポイントリストを描画するコマ
                    ンドデータのサイズを返します。

・FARL_GTYPE_DC :   ポイントリストを TE default color registerで指定された色で
                    描画するコマンドデータのサイズを返します。

・FARL_GTYPE_DCFN : 頂点ノーマルを持つポイントリストを TE default color 
                    registerで指定された色で描画するコマンドデータのサイズを返
                    します。

《解説》
ポイントリストのコマンドデータのサイズ(16bit wordの数)を返します。

引数nelemには描画するポイントの数を指定します。
引数typeに設定できる値とその意味は FarlDumpPointList と同じです。

《戻り値》
      -1: タイプ(type)の値が無効
上記以外: コマンドデータの長さ(16bit wordの数)


◆２．３．11  固定小数点データの掛け算(1.0.15)

《名称》
FarlFixMul1015

《形式》
#include <farl.h>
unsigned short FarlFixMul1015(unsigned short a, unsigned short b)

《パラメータ》
a :     掛け算される変数a
b :     掛け算される変数b

《解説》
<1.0.15>フォーマットの固定小数点データ同士の掛け算をします。演算結果の32ビット
中の下位の15ビットは切り捨てられて<1.0.15>フォーマットで返されます。オーバーフ
ローは無視します。

《戻り値》
aの値とbの値を掛けた値を返します。


◆２．３．12  固定小数点データの掛け算(1.8.7)

《名称》
FarlFixMul187

《形式》
#include <farl.h>
unsigned short FarlFixMul187(unsigned short a, unsigned short b )

《パラメータ》
a :     掛け算される変数a
b :     掛け算される変数b

《解説》
<1.8.7>フォーマットの固定小数点データ同士の掛け算をします。演算結果の32ビット
中の上位8ビットと下位7ビットは捨てられて<1.8.7>フォーマットで返されます。オー
バーフローは無視します。

《戻り値》
aの値とbの値を掛けた値を返します。


◆２．３．13  単位マトリクスのセット(SRC/1.0.15)

《名称》
FarlSetUnitMatrix1015

《形式》
#include <farl.h>
void FarlSetUnitMatrix1015()

《パラメータ》
パラメータはありません。

《解説》
source matrix[4][4]に<1.0.15>フォーマットの単位マトリクスをセットします。

《戻り値》
戻り値はありません。


◆２．３．14  単位マトリクスのセット(SRC/1.8.7)

《名称》
FarlSetUnitMatrix187

《形式》
#include <farl.h>
void FarlSetUnitMatrix187()

《パラメータ》
パラメータはありません。

《解説》
source matrix[4][4]に<1.8.7>フォーマットの単位マトリクスをセットします。

《戻り値》
戻り値はありません。


◆２．３．15  X軸まわりの回転マトリクスの演算(1.0.15)

《名称》
FarlRotateX3x3M1015

《形式》
#include <farl.h>
void FarlRotateX3x3M1015( int angle )

《パラメータ》
angle : X軸まわりの回転角度 (0 〜 3599)

《解説》
source matrixに対して、X軸まわりにangle度回転させる<1.0.15>フォーマットの3x3の
マトリクスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。
角度angleの単位は0.1度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)
です。

《戻り値》
戻り値はありません。


◆２．３．16  Y軸まわりの回転マトリクスの演算(1.0.15)

《名称》
FarlRotateY3x3M1015

《形式》
#include <farl.h>
void FarlRotateY3x3M1015( int angle )

《パラメータ》
angle : Y軸まわりの回転角度 (0 〜 3599)

《解説》
source matrixに対して、Y軸まわりにangle度回転させる<1.0.15>フォーマットの3x3の
マトリクスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。
角度angleの単位は0.1度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)
です。

《戻り値》
戻り値はありません。


◆２．３．17  Z軸まわりの回転マトリクスの演算(1.0.15)

《名称》
FarlRotateZ3x3M1015

《形式》
#include <farl.h>
void FarlRotateZ3x3M1015( int angle )

《パラメータ》
angle : Z軸まわりの回転角度 (0 〜 3599)

《解説》
source matrixに対して、Z軸まわりにangle度回転させる<1.0.15>フォーマットの3x3の
マトリクスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。
角度angleの単位は0.1度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)
です。

《戻り値》
戻り値はありません。


◆２．３．18  X軸まわりの回転マトリクスの演算(1.8.7)

《名称》
FarlRotateX4x4M187

《形式》
#include <farl.h>
void FarlRotateX4x4M187( int angle )

《パラメータ》
angle : X軸まわりの回転角度 (0 〜 3599)

《解説》
source matrixに対して、X軸まわりにangle度回転させる<1.8.7>フォーマットの4x4の
マトリクスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。
角度angleの単位は0.1度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)
です。

《戻り値》
戻り値はありません。


◆２．３．19  Y軸まわりの回転マトリクスの演算(1.8.7)

《名称》
FarlRotateY4x4M187

《形式》
#include <farl.h>
void FarlRotateY4x4M187( int angle )

《パラメータ》
angle : Y軸まわりの回転角度 (0 〜 3599)

《解説》
source matrixに対して、Y軸まわりにangle度回転させる<1.8.7>フォーマットの4x4の
マトリクスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。
角度angleの単位は0.1度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)
です。

《戻り値》
戻り値はありません。


◆２．３．20  Z軸まわりの回転マトリクスの演算(1.8.7)

《名称》
FarlRotateZ4x4M187

《形式》
#include <farl.h>
void FarlRotateZ4x4M187( int angle )

《パラメータ》
angle : Z軸まわりの回転角度 (0 〜 3599)

《解説》
source matrixに対して、Z軸まわりにangle度回転させる<1.8.7>フォーマットの4x4の
マトリクスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。
角度angleの単位は0.1度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)
です。

《戻り値》
戻り値はありません。


◆２．３．21  X軸まわりの回転マトリクスの演算(1.0.15)

《名称》
FarlRotateXSC3x3M1015

《形式》
#include <farl.h>
void FarlRotateXSC3x3M1015( unsigned short sin1015, unsigned short cos1015 )

《パラメータ》
sin1015 : X軸まわりに回転させる回転角のsin値 (<1.0.15>)
cos1015 : X軸まわりに回転させる回転角のcos値 (<1.0.15>)

《解説》
source matrixに対して、X軸まわりに回転させる<1.0.15>フォーマットの3x3のマトリ
クスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。回転角は
<1.0.15>フォーマットのsin, cosの値で指定します。

《戻り値》
戻り値はありません。


◆２．３．22  Y軸まわりの回転マトリクスの演算(1.0.15)

《名称》
FarlRotateYSC3x3M1015

《形式》
#include <farl.h>
void FarlRotateYSC3x3M1015( unsigned short sin1015, unsigned short cos1015 )

《パラメータ》
sin1015 : Y軸まわりに回転させる回転角のsin値 (<1.0.15>)
cos1015 : Y軸まわりに回転させる回転角のcos値 (<1.0.15>)

《解説》
source matrixに対して、Y軸まわりに回転させる<1.0.15>フォーマットの3x3のマトリ
クスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。回転角は
<1.0.15>フォーマットのsin, cosの値で指定します。

《戻り値》
戻り値はありません。


◆２．３．23  Z軸まわりの回転マトリクスの演算(1.0.15)

《名称》
FarlRotateZSC3x3M1015

《形式》
#include <farl.h>
void FarlRotateZSC3x3M1015( unsigned short sin1015, unsigned short cos1015 )

《パラメータ》
sin1015 : Z軸まわりに回転させる回転角のsin値 (<1.0.15>)
cos1015 : Z軸まわりに回転させる回転角のcos値 (<1.0.15>)

《解説》
source matrixに対して、Z軸まわりに回転させる<1.0.15>フォーマットの3x3のマトリ
クスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。回転角は
<1.0.15>フォーマットのsin, cosの値で指定します。

《戻り値》
戻り値はありません。


◆２．３．24  X軸まわりの回転マトリクスの演算(1.8.7)

《名称》
FarlRotateXSC4x4M187

《形式》
#include <farl.h>
void FarlRotateXSC4x4M187( unsigned short sin187, unsigned short cos187 )

《パラメータ》
sin187 : X軸まわりに回転させる回転角のsin値 (<1.8.7>)
cos187 : X軸まわりに回転させる回転角のcos値 (<1.8.7>)

《解説》
source matrixに対して、X軸まわりに回転させる<1.8.7>フォーマットの4x4のマトリク
スを掛けます。結果はHuC6273内部のdestination matrixに格納されます。回転角は
<1.8.7>フォーマットのsin, cosの値で指定します。

《戻り値》
戻り値はありません。


◆２．３．25  Y軸まわりの回転マトリクスの演算(1.8.7)

《名称》
FarlRotateYSC4x4M187

《形式》
#include <farl.h>
void FarlRotateYSC4x4M187( unsigned short sin187, unsigned short cos187 )

《パラメータ》
sin187 : Y軸まわりに回転させる回転角のsinの値 (<1.8.7>)
cos187 : Y軸まわりに回転させる回転角のcosの値 (<1.8.7>)

《解説》
source matrixに対して、Y軸まわりに回転させる<1.8.7>フォーマットの4x4のマトリク
スを掛けます。結果はHuC6273内部のdestination matrixに格納されます。回転角は
<1.8.7>フォーマットのsin, cosの値で指定します。

《戻り値》
戻り値はありません。


◆２．３．26  Z軸まわりの回転マトリクスの演算(1.8.7)

《名称》
FarlRotateZSC4x4M187

《形式》
#include <farl.h>
void FarlRotateZSC4x4M187( unsigned short sin187, unsigned short cos187 )

《パラメータ》
sin187 : Z軸まわりに回転させる回転角のsinの値 (<1.8.7>)
cos187 : Z軸まわりに回転させる回転角のcosの値 (<1.8.7>)

《解説》
source matrixに対して、Z軸まわりに回転させる<1.8.7>フォーマットの4x4のマトリク
スを掛けます。結果はHuC6273内部のdestination matrixに格納されます。回転角は
<1.8.7>フォーマットのsin, cosの値で指定します。

《戻り値》
戻り値はありません。


◆２．３．27  移動マトリクスの演算(1.8.7)

《名称》
FarlTranslate4x4M187

《形式》
#include <farl.h>
void FarlTranslate4x4M187( unsigned short x, unsigned short y,
                           unsigned short z )

《パラメータ》
x :     X方向移動量 (<1.8.7>)
y :     Y方向移動量 (<1.8.7>)
z :     Z方向移動量 (<1.8.7>)

《解説》
source matrixに対して、X,Y,Z方向にそれぞれ x, y, z だけ平行移動させる<1.8.7>
フォーマットの4x4のマトリクスを掛けます。結果はHuC6273内部のdestination
matrixに格納されます。x,y,zは<1.8.7>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．28  拡大／縮小マトリクスの演算(1.8.7)

《名称》
FarlScale4x4M187

《形式》
#include <farl.h>
void FarlScale4x4M187( unsigned short sx, unsigned short sy,
                       unsigned short sz )

《パラメータ》
sx :    X方向の倍率 (<1.8.7>)
sy :    Y方向の倍率 (<1.8.7>)
sz :    Z方向の倍率 (<1.8.7>)

《解説》
source matrixに対して、X,Y,Z方向にそれぞれ sx, sy, sz 倍だけ拡大/縮小させる
<1.8.7>フォーマットの4x4のマトリクスを掛けます。結果はHuC6273内部のdestination
matrix に格納されます。sx,sy,szは<1.8.7>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．29  パースマトリクスの演算(1.8.7)

《名称》
FarlPerseZ4x4M187

《形式》
#include <farl.h>
void FarlPerseZ4x4M187(unsigned short m)

《パラメータ》
m :     パース係数

《解説》
source matrixに対して、Z方向に m のパースをかける<1.8.7>フォーマットの4x4のマ
トリクスを掛けます。結果はHuC6273内部のdestination matrixに格納されます。
mは<1.8.7>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．30  Display bufferのスワップ

《名称》
FarlSwapWindow 

《形式》
#include <farl.h>
void FarlSwapWindow()

《パラメータ》
パラメータはありません。

《解説》
PE frame control registerに値 0xd をセットします。次のV-Blankでswapします。

《戻り値》
戻り値はありません。


◆２．３．31  Dummy スワップ

《名称》
FarlDummySwap 

《形式》
#include <farl.h>
void FarlDummySwap()

《パラメータ》
パラメータはありません。

《解説》
PE frame control registerに値 0x0 をセットします。直前の swap処理が終了するま
でPE部がロックされます。PE clear Z value register や PE clear color value
registerなど、swap処理中に変更してはいけないレジスタを操作する時に利用します。
PE部以外(TE部/Sprite部)は、ロックしないので注意が必要です。

《戻り値》
戻り値はありません。


◆２．３．32  Validate スワップ

《名称》
FarlValidateSwap

《形式》
#include <farl.h>
void FarlValidateSwap()

《パラメータ》
パラメータはありません。

《解説》
PE frame control registerに値 0x7 をセットします。次のH-Blankでswapします。
front bufferとback bufferの切り替えをしません。主に、更新した設定値がswap後に
有効になるレジスタへの設定値を有効にするために使用します。

《戻り値》
戻り値はありません。


◆２．３．33  H-Blank スワップ

《名称》
FarlSwapWindowH

《形式》
#include <farl.h>
void FarlSwapWindowH()

《パラメータ》
パラメータはありません。

《解説》
PE frame control registerに値 0x5 をセットします。次のH-Blankでswapします。
front bufferとback bufferの切り替えをします。

《戻り値》
戻り値はありません。


◆２．３．34  8bit(Byte)データの書き込み

《名称》
FarlOutportB

《形式》
#include <farl.h>
void FarlOutportB(unsigned int addr, unsigned char val)

《パラメータ》
addr :  書き込みアドレス
val  :  書き込みデータ

《解説》
__OUTPORTB(addr,data) のマクロによる置き換えです。

《戻り値》
戻り値はありません。


◆２．３．35  16bit(Halfword)データの書き込み

《名称》
FarlOutportH

《形式》
#include <farl.h>
void FarlOutportH(unsigned int addr, unsigned short data )

《パラメータ》
addr :  書き込みアドレス
data :  書き込みデータ

《解説》
__OUTPORTH(addr,data) のマクロによる置き換えです。

《戻り値》
戻り値はありません。


◆２．３．36  32bit(Word)データの書き込み

《名称》
FarlOutportW

《形式》
#include <farl.h>
void FarlOutportW( unsigned int addr, unsigned int data )

《パラメータ》
addr :  書き込みアドレス
data :  書き込みデータ

《解説》
__OUTPORTW(addr,data) のマクロによる置き換えです。 アドレス(addr)へ下位16ビッ
トが書き込まれ、次にアドレス+2(addr+2)へ上位16ビットが書き込まれます。

《戻り値》
戻り値はありません。


◆２．３．37  8bit(Byte)データの読み込み

《名称》
FarlInportB

《形式》
#include <farl.h>
unsigned char FarlInportB(unsigned int addr)

《パラメータ》
addr :  読み込みアドレス

《解説》
__INPORTB(addr) のマクロによる置き換えです。

《戻り値》
アドレス addr から読み出した値(8bitデータ)を返します。


◆２．３．38  16bit(Halfword)データの読み込み

《名称》
FarlInportH

《形式》
#include <farl.h>
unsigned short FarlInportH(unsigned int addr)

《パラメータ》
addr :  読み込みアドレス

《解説》
__INPORTH(addr) のマクロによる置き換えです。

《戻り値》
アドレス addr から読み出した値(16bitデータ)を返します。


◆２．３．39  32bit(Word)データの読み込み

《名称》
FarlInportW

《形式》
#include <farl.h>
unsigned int FarlInportW(unsigned int addr)

《パラメータ》
addr :  読み込みアドレス

《解説》
__INPORTW(addr) のマクロによる置き換えです。 アドレス(addr)から下位16ビットが
読み込まれ、次にアドレス+2(addr+2)から上位16ビットが読み込まれます。

《戻り値》
アドレス addr から読み出した値(32bitデータ)を返します。


◆２．３．40  Config registerの読み出し

《名称》
FarlGetConf

《形式》
#include <farl.h>
int FarlGetConf(farl_conf_t *conf)

《パラメータ》
farl_conf_t*conf : Config registerの内容を格納する構造体

《解説》
Config registerの内容を、構造体 farl_conf_t にセットして返します。
また、HuC6273の有無を関数の戻り値として返します。
この関数はFarlInit()を呼び出さずに利用することができます。

《戻り値》
    0:  HuC6273が存在する。
   -1:  HuC6273は存在しない。confの内容は無効。

Config registerの内容は、以下の構造体にセットされます。

#typedef struct {
    unsigned char tbwidth;
    unsigned char tsize;
    unsigned char rev;
} farl_conf_t;

conf.tbwidth:  Texture bufferのビット幅
                 0 -->  9 bit
                 1 --> 12 bit
conf.tsize:    Texture bufferのバンク数
                 0 -->  8 bank
                 1 --> 16 bank
                 2 --> 32 bank
conf.rev:      HuC6273のRevision番号(4 bit)。


◆２．３．41  浮動小数点の固定小数点変換(1.8.7)

《名称》
FarlFix187

《形式》
#include <farl.h>
unsigned short FarlFix187(float fdata)

《パラメータ》
fdata : 変換する浮動小数点データの値

《解説》
浮動小数点データを<1.8.7>フォーマットの固定小数点データに変換します。

《戻り値》
変換された<1.8.7>フォーマットの固定小数点データを返します。


◆２．３．42  浮動小数点の固定小数点変換(1.0.15)

《名称》
FarlFix1015

《形式》
#include <farl.h>
unsigned short FarlFix1015(float fdata)

《パラメータ》
fdata : 変換する浮動小数点データの値

《解説》
浮動小数点データを<1.0.15>フォーマットの固定小数点データに変換します。

《戻り値》
変換された<1.0.15>フォーマットの固定小数点データを返します。


◆２．３．43  固定小数点(1.8.7)の浮動小数点変換

《名称》
FarlFloat187

《形式》
#include <farl.h>
float FarlFloat187(unsigned short d)

《パラメータ》
d :     変換する<1.8.7>フォーマットの固定小数点データの値

《解説》
<1.8.7>フォーマットの固定小数点データを浮動小数点データに変換します。

《戻り値》
変換された浮動小数点データを返します。


◆２．３．44  固定小数点(1.0.15)の浮動小数点変換

《名称》
FarlFloat1015

《形式》
#include <farl.h>
float FarlFloat1015(unsigned short d)

《パラメータ》
d :     変換する<1.0.15>フォーマットの固定小数点データの値

《解説》
<1.0.15>フォーマットの固定小数点データを浮動小数点データに変換します。

《戻り値》
変換された浮動小数点データを返します。


◆２．３．45  固定小数点ベクターの正規化(1.0.15)

《名称》
FarlNormalizeVector

《形式》
#include <farl.h>
void FarlNormalizeVector(unsigned short v[3])

《パラメータ》
v :     <1.0.15>フォーマットの固定小数点ベクター

《解説》
<1.0.15>フォーマットの固定小数点ベクター v[3] を正規化します。

《戻り値》
戻り値はありません。


◆２．３．46  sin値の取得(1.8.7)

《名称》
FarlGetSin187

《形式》
#include <farl.h>
unsigned short FarlGetSin187(int angle)

《パラメータ》
angle : 角度 (0 〜 3599)

《解説》
角度angleにおける<1.8.7>フォーマットのsin値を取得します。角度angleの単位は0.1
度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)です。

《戻り値》
角度angleにおける<1.8.7>フォーマットのsin値を返します。


◆２．３．47  sin値の取得(1.0.15)

《名称》
FarlGetSin1015

《形式》
#include <farl.h>
unsigned short FarlGetSin1015(int angle)

《パラメータ》
angle : 角度 (0 〜 3599)

《解説》
角度angleにおける<1.0.15>フォーマットのsin値を取得します。角度angleの単位は0.1
度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)です。

《戻り値》
角度angleにおける<1.0.15>フォーマットのsin値を返します。


◆２．３．48  cos値の取得(1.8.7)

《名称》
FarlGetCos187

《形式》
#include <farl.h>
unsigned short FarlGetCos187(int angle)

《パラメータ》
angle : 角度 (0 〜 3599)

《解説》
角度angleにおける<1.8.7>フォーマットのcos値を取得します。角度angleの単位は0.1
度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)です。

《戻り値》
角度angleにおける<1.8.7>フォーマットのcos値を返します。


◆２．３．49  Cos値の取得(1.0.15)

《名称》
FarlGetCos1015

《形式》
#include <farl.h>
unsigned short FarlGetCos1015(int angle)

《パラメータ》
angle : 角度 (0 〜 3599)

《解説》
角度angleにおける<1.0.15>フォーマットのcos値を取得します。角度angleの単位は0.1
度(degree)で、指定できる値の範囲は 0 〜 3599(0度〜359.9度)です。

《戻り値》
角度angleにおける<1.0.15>フォーマットのcos値を返します。


◆２．３．50  マトリクスのコピー(DST-->Mem/4x4)

《名称》
FarlCopyDstToMem4x4

《形式》
#include <farl.h>
void FarlCopyDstToMem4x4(unsigned short m[4][4])

《パラメータ》
m :     destination matrixのコピー先

《解説》
destination matrix[4][4]をメモリ(m[4][4])にコピーします。

《戻り値》
戻り値はありません。


◆２．３．51  マトリクスのコピー(DST-->Mem/3x3)

《名称》
FarlCopyDstToMem3x3

《形式》
#include <farl.h>
void FarlCopyDstToMem3x3(unsigned short m[3][3])

《パラメータ》
m :     destination matrixのコピー先

《解説》
destination matrix[3][3]をメモリ(m[3][3])へコピーします。

《戻り値》
戻り値はありません。


◆２．３．52  マトリクスのコピー(DST-->Mem/3x1)

《名称》
FarlCopyDstToMem3x1

《形式》
#include <farl.h>
void FarlCopyDstToMem3x1(unsigned short v[3])

《パラメータ》
v:      destination matrixのコピー先

《解説》
destination matrix[3][1]をメモリ(v[3])へコピーします。

《戻り値》
戻り値はありません。


◆２．３．53  X軸まわりの回転マトリクスの取得(1.0.15)

《名称》
FarlGetRotateX3x3M1015

《形式》
#include <farl.h>
void FarlGetRotateX3x3M1015( int angle, unsigned short m[3][3] )

《パラメータ》
angle : X軸まわりの回転角度 (0 〜 3599)
m     : マトリクス格納先

《解説》
<1.0.15>フォーマットの3x3のマトリクス
        ＋                                ＋
        ｜   1       0            0       ｜
        ｜   0   cos(angle)  -sin(angle)  ｜
        ｜   0   sin(angle)   cos(angle)  ｜
        ＋                                ＋
をバッファ m に格納します。このマトリクスは、X軸まわりにangleだけ回転する変換
を意味します。angle の単位は 0.1度(degree)で、指定できる値の範囲は 0 〜 3599 
(0度〜359.9度)です。

《戻り値》
戻り値はありません。


◆２．３．54  Y軸まわりの回転マトリクスの取得(1.0.15)

《名称》
FarlGetRotateY3x3M1015

《形式》
#include <farl.h>
void FarlGetRotateY3x3M1015( int angle, unsigned short m[3][3] )

《パラメータ》
angle : Y軸まわりの回転角度 (0 〜 3599)
m     : マトリクス格納先

《解説》
<1.0.15>フォーマットの3x3のマトリクス
        ＋                                ＋
        ｜   cos(angle)   0   sin(angle)  ｜
        ｜       0        1       0       ｜
        ｜  -sin(angle)   0   cos(angle)  ｜
        ＋                                ＋
をバッファ m に格納します。このマトリクスは、Y軸まわりにangleだけ回転する変換
を意味します。angle の単位は 0.1度(degree)で、指定できる値の範囲は 0 〜 3599 
(0度〜359.9度)です。

《戻り値》
戻り値はありません。


◆２．３．55  Z軸まわりの回転マトリクスの取得(1.0.15)

《名称》
FarlGetRotateZ3x3M1015

《形式》
#include <farl.h>
void FarlGetRotateZ3x3M1015( int angle, unsigned short m[3][3] )

《パラメータ》
angle : Z軸まわりの回転角度 (0 〜 3599)
m     : マトリクス格納先

《解説》
<1.0.15>フォーマットの3x3のマトリクス
        ＋                                ＋
        ｜  cos(angle)  -sin(angle)   0   ｜
        ｜  sin(angle)   cos(angle)   0   ｜
        ｜      0            0        1   ｜
        ＋                                ＋
をバッファ m に格納します。このマトリクスは、Z軸まわりにangleだけ回転する変換
を意味します。angle の単位は 0.1度(degree)で、指定できる値の範囲は 0 〜 3599 
(0度〜359.9度)です。

《戻り値》
戻り値はありません。


◆２．３．56  X軸まわりの回転マトリクスの取得(1.0.15)

《名称》
FarlGetRotateXSC3x3M1015

《形式》
#include <farl.h>
void FarlGetRotateXSC3x3M1015( unsigned short sin, unsigned short cos,
                               unsigned short m[3][3] )

《パラメータ》
sin :   回転角のsin値 (<1.0.15>)
cos :   回転角のcos値 (<1.0.15>)
m   :   マトリクス格納先

《解説》
<1.0.15>フォーマットの3x3のマトリクス
        ＋                   ＋
        ｜  1     0      0   ｜
        ｜  0    cos   -sin  ｜
        ｜  0    sin    cos  ｜
        ＋                   ＋
をバッファ m に格納します。このマトリクスはX軸まわりの回転を意味します。
sin, cos はそれぞれ<1.0.15>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．57  Y軸まわりの回転マトリクスの取得(1.0.15)

《名称》
FarlGetRotateYSC3x3M1015

《形式》
#include <farl.h>
void FarlGetRotateYSC3x3M1015( unsigned short sin, unsigned short cos,
                               unsigned short m[3][3] )

《パラメータ》
sin :   回転角のsin値 (<1.0.15>)
cos :   回転角のcos値 (<1.0.15>)
m   :   マトリクス格納先

《解説》
<1.0.15>フォーマットの3x3のマトリクス
        ＋                  ＋
        ｜   cos   0   sin  ｜
        ｜    0    1    0   ｜
        ｜  -sin   0   cos  ｜
        ＋                  ＋
をバッファ m に格納します。このマトリクスはY軸まわりの回転を意味します。
sin, cos はそれぞれ<1.0.15>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．58  Z軸まわりの回転マトリクスの取得(1.0.15)

《名称》
FarlGetRotateZSC3x3M1015

《形式》
#include <farl.h>
void FarlGetRotateZSC3x3M1015( unsigned short sin, unsigned short cos,
                               unsigned short m[3][3] )

《パラメータ》
sin :   回転角のsin値 (<1.0.15>)
cos :   回転角のcos値 (<1.0.15>)
m   :   マトリクス格納先

《解説》
<1.0.15>フォーマットの3x3のマトリクス
        ＋                  ＋
        ｜  cos  -sin   0   ｜
        ｜  sin   cos   0   ｜
        ｜   0     0    1   ｜
        ＋                  ＋
をバッファ m に格納します。このマトリクスはZ軸まわりの回転を意味します。
sin, cos はそれぞれ<1.0.15>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．59  X軸まわりの回転マトリクスの取得(1.8.7)

《名称》
FarlGetRotateX4x4M187

《形式》
#include <farl.h>
void FarlGetRotateX4x4M187( int angle, unsigned short m[4][4] )

《パラメータ》
angle : X軸まわりの回転角度 (0 〜 3599)
m     : マトリクス格納先

《解説》
<1.8.7>フォーマットの4x4のマトリクス
        ＋                                     ＋
        ｜   1       0            0        0   ｜
        ｜   0   cos(angle)  -sin(angle)   0   ｜
        ｜   0   sin(angle)   cos(angle)   0   ｜
        ｜   0       0            0        1   ｜
        ＋                                     ＋
をバッファ m に格納します。このマトリクスは、X軸まわりにangleだけ回転する変換
を意味します。angle の単位は 0.1度(degree)で、指定できる値の範囲は 0 〜 3599 
(0度〜359.9度)です。

《戻り値》
戻り値はありません。


◆２．３．60  Y軸まわりの回転マトリクスの取得(1.8.7)

《名称》
FarlGetRotateY4x4M187

《形式》
#include <farl.h>
void FarlGetRotateY4x4M187( int angle, unsigned short m[4][4] )

《パラメータ》
angle : Y軸まわりの回転角度 (0 〜 3599)
m     : マトリクス格納先

《解説》
<1.8.7>フォーマットの4x4のマトリクス
        ＋                                     ＋
        ｜   cos(angle)   0   sin(angle)   0   ｜
        ｜       0        1       0        0   ｜
        ｜  -sin(angle)   0   cos(angle)   0   ｜
        ｜       0        0       0        1   ｜
        ＋                                     ＋
をバッファ m に格納します。このマトリクスは、Y軸まわりにangleだけ回転する変換
を意味します。angle の単位は 0.1度(degree)で、指定できる値の範囲は 0 〜 3599 
(0度〜359.9度)です。

《戻り値》
戻り値はありません。


◆２．３．61  Z軸まわりの回転マトリクスの取得(1.8.7)

《名称》
FarlGetRotateZ4x4M187

《形式》
#include <farl.h>
void FarlGetRotateZ4x4M187( int angle, unsigned short m[4][4] )

《パラメータ》
angle : Z軸まわりの回転角度 (0 〜 3599)
m     : マトリクス格納先

《解説》
<1.8.7>フォーマットの4x4のマトリクス
        ＋                                     ＋
        ｜  cos(angle)  -sin(angle)   0    0   ｜
        ｜  sin(angle)   cos(angle)   0    0   ｜
        ｜      0            0        1    0   ｜
        ｜      0            0        0    1   ｜
        ＋                                     ＋
をバッファ m に格納します。このマトリクスは、Z軸まわりにangleだけ回転する変換
を意味します。angle の単位は 0.1度(degree)で、指定できる値の範囲は 0 〜 3599 
(0度〜359.9度)です。

《戻り値》
戻り値はありません。


◆２．３．62  X軸まわりの回転マトリクスの取得(1.8.7)
《名称》
FarlGetRotateXSC4x4M187

《形式》
#include <farl.h>
void FarlGetRotateXSC4x4M187( unsigned short sin, unsigned short cos,
                              unsigned short m[4][4] )

《パラメータ》
sin :   回転角のsin値 (<1.8.7>)
cos :   回転角のcos値 (<1.8.7>)
m   :   マトリクス格納先

《解説》
<1.8.7>フォーマットの4x4のマトリクス
        ＋                         ＋
        ｜   1     0     0     0   ｜
        ｜   0    cos  -sin    0   ｜
        ｜   0    sin   cos    0   ｜
        ｜   0     0     0     1   ｜
        ＋                         ＋
をバッファ m に格納します。このマトリクスはX軸まわりの回転を意味します。
sin, cos はそれぞれ<1.8.7>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．63  Y軸まわりの回転マトリクスの取得(1.8.7)

《名称》
FarlGetRotateYSC4x4M187

《形式》
#include <farl.h>
void FarlGetRotateYSC4x4M187( unsigned short sin, unsigned short cos,
                              unsigned short m[4][4] )

《パラメータ》
sin :   回転角のsin値 (<1.8.7>)
cos :   回転角のcos値 (<1.8.7>)
m   :   マトリクス格納先

《解説》
<1.8.7>フォーマットの4x4のマトリクス
        ＋                         ＋
        ｜  cos    0    sin    0   ｜
        ｜   0     1     0     0   ｜
        ｜ -sin    0    cos    0   ｜
        ｜   0     0     0     1   ｜
        ＋                         ＋
をバッファ m に格納します。このマトリクスはY軸まわりの回転を意味します。
sin, cos はそれぞれ<1.8.7>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．64  Z軸まわりの回転マトリクスの取得(1.8.7)

《名称》
FarlGetRotateZSC4x4M187

《形式》
#include <farl.h>
void FarlGetRotateZSC4x4M187( unsigned short sin, unsigned short cos,
                              unsigned short m[4][4] )

《パラメータ》
sin :   回転角のsin値 (<1.8.7>)
cos :   回転角のcos値 (<1.8.7>)
m   :   マトリクス格納先

《解説》
<1.8.7>フォーマットの4x4のマトリクス
        ＋                         ＋
        ｜  cos  -sin    0     0   ｜
        ｜  sin   cos    0     0   ｜
        ｜   0     0     1     0   ｜
        ｜   0     0     0     1   ｜
        ＋                         ＋
をバッファ m に格納します。このマトリクスはZ軸まわりの回転を意味します。
sin, cos はそれぞれ<1.8.7>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．65  移動マトリクスの取得(1.8.7)

《名称》
FarlGetTranslate4x4M187

《形式》
#include <farl.h>
void FarlGetTranslate4x4M187( unsigned short x, unsigned short y,
                              unsigned short z, unsigned short m[4][4] )

《パラメータ》
x :     X方向移動量 (<1.8.7>)
y :     Y方向移動量 (<1.8.7>)
z :     Z方向移動量 (<1.8.7>)
m :     マトリクス格納先

《解説》
<1.8.7>フォーマットの4x4のマトリクス
        ＋                ＋
        ｜  1   0   0   x ｜
        ｜  0   1   0   y ｜
        ｜  0   0   1   z ｜
        ｜  0   0   0   1 ｜
        ＋                ＋
をバッファ m に格納します。このマトリクスは、X,Y,Z方向にそれぞれ x, y,z だけ平
行移動する変換を意味します。
x, y, z はそれぞれ<1.8.7>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．66  拡大／縮小マトリクスの取得(1.8.7)

《名称》
FarlGetScale4x4M187

《形式》
#include <farl.h>
void FarlGetScale4x4M187( unsigned short sx, unsigned short sy,
                          unsigned short sz, unsigned short m[4][4] )

《パラメータ》
sx :    X方向の倍率 (<1.8.7>)
sy :    Y方向の倍率 (<1.8.7>)
sz :    Z方向の倍率 (<1.8.7>)
m  :    マトリクス格納先

《解説》
<1.8.7>フォーマットの4x4のマトリクス
        ＋                 ＋
        ｜ sx   0   0   0  ｜
        ｜  0  sy   0   0  ｜
        ｜  0   0  sz   0  ｜
        ｜  0   0   0   1  ｜
        ＋                 ＋
をバッファ m に格納します。このマトリクスは、X,Y,Z方向にそれぞれ sx,sy, sz倍だ
け拡大/縮小する変換を意味します。
sx, sy, sz はそれぞれ<1.8.7>フォーマットです。

《戻り値》
戻り値はありません。


◆２．３．67  マトリクスのコピー(Mem/4x4-->Mem/4x4)

《名称》
FarlMatrixCopy4x4

《形式》
#include <farl.h>
void FarlMatrixCopy4x4(unsigned short dst[4][4], unsigned short src[4][4])

《パラメータ》
dst :   コピー先のマトリクス
src :   コピー元のマトリクス

《解説》
マトリクス src[4][4]を dst[4][4]にコピーします。

《戻り値》
戻り値はありません。


◆２．３．68  マトリクスのコピー(Mem/3x3-->Mem/3x3)
《名称》
FarlMatrixCopy3x3

《形式》
#include <farl.h>
void FarlMatrixCopy3x3(unsigned short dst[3][3], unsigned short src[3][3])

《パラメータ》
dst :   コピー先のマトリクス
src :   コピー元のマトリクス

《解説》
マトリクス src[3][3]を dst[3][4]にコピーします。

《戻り値》
戻り値はありません。


＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

■２．４  Sprite Functions

◆２．４．１  Sprite control tableのセット

《名称》
FarlSetSpControlTbl

《形式》
#include <farl.h>
void FarlSetSpControlTbl(unsigned short no, unsigned short d[16])

《パラメータ》
no :    Texture bufferバンク内SCT番号
d  :    Sprite control table

《解説》
Sprite control table(d[16])を Texture bufferにセットします。Texture bufferのバ
ンク番号をCMT bank select registerにセットしておく必要があります。no にはセッ
ト先のバンク内SCT番号(0〜2047)を指定します。

Texture bufferの 1つのバンクは64K Bytesで、SCTは 1エントリあたり 32Bytes です
から、1バンクあたり2048個のSCTエントリを置くことができます。SCT番号は、その
2048個のSCTのインデックスで、0〜2047 を指定することができます。

《戻り値》
戻り値はありません。


◆２．４．２  Sprite parameter tableのセット

《名称》
FarlSetSpParamTbl 

《形式》
#include <farl.h>
void FarlSetSpParamTbl(unsigned int addr, unsigned short num,
                       unsigned short d[num*4])

《パラメータ》
addr :  セットするTexture bufferの先頭アドレス
num  :  Sprite parameter tableの数
d    :  Sprite parameter tableデータのポインタ

《解説》
Sprite parameter table(d[num*4])をTexture bufferにセットします。セットする先頭
アドレスaddrは、16Byte境界アドレスでなければなりません。あらかじめTexture 
bufferのバンク番号をCMT bank select registerにセットしておく必要があります。

《戻り値》
戻り値はありません。


◆２．４．３  Sprite window clip registerのセット

《名称》
FarlSetSpWinClipReg

《形式》
#include <farl.h>
void FarlSetSpWinClipReg(unsigned short xl, unsigned short yt,
                         unsigned short xr, unsigned short yb)

《パラメータ》
xl :    ウィンドウの左端を示すX座標
yt :    ウィンドウの上端を示すY座標
xr :    ウィンドウの右端を示すX座標
yb :    ウィンドウの下端を示すY座標

《解説》
Sprite window clip register に値xl, yt, xr, ybをセットします。パラメータには、
スプライト描画を行うウィンドウの矩形領域をデバイス座標系で指定します。

《戻り値》
戻り値はありません。


◆２．４．４  スプライトの起動

《名称》
FarlSpriteGo

《形式》
#include <farl.h>
void FarlSpriteGo(unsigned short bnk, unsigned short no, unsigned short wc)

《パラメータ》
bnk :   Texture bufferのバンク番号
no  :   セットされているSprite control table番号
wc  :   起動するスプライトの数

《解説》
Texture bufferにセットされているSprite control table(SCT)を実行してスプライト
を描画します。実行する先頭のSCTのバンク番号を bnk に、バンク内SCT番号(0〜2047)
を no に、実行するSCTの数を wc に指定します。wc に指定できる個数の範囲は
0〜2047 で、0 は 2048個を意味します。指定した個数のSCTがバンク境界をまたがって
いてもかまいません。

《戻り値》
戻り値はありません。


◆２．４．５  スプライト処理の終了待ち

《名称》
FarlSpbsySpin

《形式》
#include <farl.h>
void FarlSpbsySpin()

《パラメータ》
パラメータはありません。

《解説》
スプライトの処理の終了を待ちます。
Misc status registerのSPBSYビットをポーリングし、SPBSY=0となるまで待ちます。

《戻り値》
戻り値はありません。


◆２．４．６  スプライト処理の終了待ち

《名称》
FarlWaitSpdone

《形式》
#include <farl.h>
void FarlWaitSpdone()

《パラメータ》
パラメータはありません。

《解説》
スプライトの処理の終了を待ちます。
Interrupt status registerのSPDONEビットをポーリングし、SPDONE=1となるまで待ち
ます。

《戻り値》
戻り値はありません。


◆２．４．７  SPDONEビットのクリア

《名称》
FarlClearSpdone

《形式》
#include <farl.h>
void FarlClearSpdone()

《パラメータ》
パラメータはありません。

《解説》
Interrupt status registerのSPDONEビットをクリアします。

《戻り値》
戻り値はありません。


＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

■２．５ CMT Functions 

◆２．５．１  Command macro tableのセット

《名称》
FarlSetCmt

《形式》
#include <farl.h>
void FarlSetCmt(unsigned short addr, unsigned short sz, unsigned short d[sz])

《パラメータ》
addr :  セットするTexture bufferのアドレス
sz   :  Commnad macro tableのサイズ
d[]  :  Command macro tableの格納されている配列

《解説》
Command macro table(d[sz])をTexture bufferのアドレス(addr)にセットします。szは
テーブルのサイズ(word数)を表します。あらかじめTexture bufferのバンク番号をCMT 
bank select registerにセットしておく必要があります。

《戻り値》
戻り値はありません。


◆２．５．２  Command macroの起動

《名称》
FarlCmtGo 

《形式》
#include <farl.h>
void FarlCmtGo(unsigned short bnk, unsigned short addr, unsigned short bc)

《パラメータ》
bnk  :  起動するCMTが格納されている Texture bufferのバンク番号
addr :  起動するCMTの先頭のバンク内アドレス
bc   :  起動するCMTのバイト数

《解説》
CMT bank select register, CMT start address register, CMT byte count register 
に bnk, addr, bcをセットして、Command macroを起動します。

《戻り値》
戻り値はありません。


◆２．５．３  Command macro処理の終了待ち

《名称》
FarlCmbsySpin 

《形式》
#include <farl.h>
void FarlCmbsySpin()

《パラメータ》
パラメータはありません。

《解説》
Command Macro処理の終了を待ちます。
Misc Status registerのCMBSYビットをポーリングし、CMBSY=0となるまで待ちます。

《戻り値》
戻り値はありません。


◆２．５．４  Command macro pendingの空き待ち

《名称》
FarlCmpndSpin

《形式》
#include <farl.h>
void FarlCmpndSpin()

《パラメータ》
パラメータはありません。

《解説》
Command macro pendingでなくなるのを待ちます。
Misc status registerのCMPNDビットをポーリングし、CMPND=0となるまで待ちます。

《戻り値》
戻り値はありません。


◆２．５．５  Command macro処理の終了待ち

《名称》
FarlWaitCmdone

《形式》
#include <farl.h>
void FarlWaitCmdone()

《パラメータ》
パラメータはありません。

《解説》
Command macro処理の終了を待ちます。
Interrupt status registerのCMDONEビットをポーリングし、CMDONE=1となるまで待ち
ます。

《戻り値》
戻り値はありません。


◆２．５．６  CMDONEビットのクリア

《名称》
FarlClearCmdone 

《形式》
#include <farl.h>
void FarlClearCmdone()

《パラメータ》
パラメータはありません。

《解説》
Interrupt status registerのCMDONEビットをクリアします。

《戻り値》
戻り値はありません。


＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

第３章  FarlInit()によるレジスタの初期化内容

HuC6273のマニュアルおよび farl.h とあわせて参照して下さい。

<<<<PE registers>>>>
FARL_PE_IC_MASK_REG,          FARL_ICMASK_I4C5
FARL_PE_TEXTURE_REG,          0x0
FARL_PE_TARGET_REG,           FARL_PE_WBEN_DZ|FARL_PE_RBSEL_D
FARL_PE_CONTROL_REG,          0x0
FARL_PE_MASK_REG,             0x0fff
FARL_PE_CLEAR_Z_VALUE_REG,    0x0
FARL_PE_CLEAR_COLOR_VALUE_REG,0x0
FARL_PE_FLASH_IC_VAL_REG,     0x0
FARL_PE_CLEAR_TEXTURE_REG,    0x0
FARL_PE_CLEAR_MASK_REG,       0x0fff
FARL_PE_CWT_X_OFFSET_REG,     0x0
FARL_PE_CWT_Y_OFFSET_REG,     0x0

<<<<TE registers>>>>
FARL_OBJECT_MATRIX00_ADR,     0x0080  /* 1.0 (1.8.7)       */
FARL_OBJECT_MATRIX01_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX02_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX03_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX10_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX11_ADR,     0x0080  /* 1.0 (1.8.7)       */
FARL_OBJECT_MATRIX12_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX13_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX20_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX21_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX22_ADR,     0x0080  /* 1.0 (1.8.7)       */
FARL_OBJECT_MATRIX23_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX30_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX31_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX32_ADR,     0x0000  /* 0.0 (1.8.7)       */
FARL_OBJECT_MATRIX33_ADR,     0x0080  /* 1.0 (1.8.7)       */
FARL_NORMAL_MATRIX00_ADR,     0x7fff  /* near 1.0 (1.0.15) */
FARL_NORMAL_MATRIX01_ADR,     0x0000  /* 0.0 (1.0.15)      */
FARL_NORMAL_MATRIX02_ADR,     0x0000  /* 0.0 (1.0.15)      */
FARL_NORMAL_MATRIX10_ADR,     0x0000  /* 0.0 (1.0.15)      */
FARL_NORMAL_MATRIX11_ADR,     0x7fff  /* near 1.0 (1.0.15) */
FARL_NORMAL_MATRIX12_ADR,     0x0000  /* 0.0 (1.0.15)      */
FARL_NORMAL_MATRIX20_ADR,     0x0000  /* 0.0 (1.0.15)      */
FARL_NORMAL_MATRIX21_ADR,     0x0000  /* 0.0 (1.0.15)      */
FARL_NORMAL_MATRIX22_ADR,     0x7fff  /* near 1.0 (1.0.15) */
FARL_LIGHT1_VECTOR0_ADR,      0x0000  /* 0.0 (1.0.15)      */
FARL_LIGHT1_VECTOR1_ADR,      0x0000  /* 0.0 (1.0.15)      */
FARL_LIGHT1_VECTOR2_ADR,      0x7fff  /* near 1.0 (1.0.15) */
FARL_LIGHT2_VECTOR0_ADR,      0x0000  /* 0.0 (1.0.15)      */
FARL_LIGHT2_VECTOR1_ADR,      0x0000  /* 0.0 (1.0.15)      */
FARL_LIGHT2_VECTOR2_ADR,      0x7fff  /* near 1.0 (0.0.15) */
FARL_AMBIENT_COE_ADR,         0x0ccc  /* near 0.1 (0.0.15) */
FARL_DIFFUSE_COE1_ADR,        0x7fff  /* near 1.0 (0.0.15) */
FARL_DIFFUSE_COE2_ADR,        0x0000  /* near 0.0 (0.0.15) */
FARL_SPECULAR_COE1_ADR,       0x7fff  /* near 1.0 (0.0.15) */
FARL_SPECULAR_COE2_ADR,       0x0000  /* near 1.0 (0.0.15) */
FARL_WINDOW_CLIP_XLEFT_ADR,   0
FARL_WINDOW_CLIP_YTOP_ADR,    0
FARL_WINDOW_CLIP_XRIGHT_ADR,  255
FARL_WINDOW_CLIP_YBOTTOM_ADR, 239
FARL_WINDOW_SCALE_SCALEX_ADR, 0x0080 /*  128 (1.15.0) */
FARL_WINDOW_SCALE_TRANSX_ADR, 0x0080 /*  128 (1.15.0) */
FARL_WINDOW_SCALE_SCALEY_ADR, 0xff80 /* -128 (1.15.0) */
FARL_WINDOW_SCALE_TRANSY_ADR, 0x0080 /*  128 (1.15.0) */
FARL_MESH_PATTERN_ADR,        0xffff /* Mask all bits */
FARL_U_OFFSET_ADR,            0x0000 /* 0             */
FARL_V_OFFSET_ADR,            0x0000 /* 0             */
FARL_DEFAULT_COLOR_ADR,       0x0801 /* White         */
FARL_TE_CONTROL_ADR,          FARL_TE_ICM|FARL_TE_LTEN|FARL_TE_BCE

<<<<Memory Mapped registers>>>>
FARL_STATUS_CONTROL_REG,      FARL_STATUS_CONTROL_HRST
FARL_INTERRUPT_CLEAR_REG,     0xffff
FARL_INTERRUPT_MASK_REG,      0x0
FARL_MISC_STATUS_REG,         FARL_MISC_STATUS_SEL|FARL_MISC_STATUS_NTRM
FARL_DISPLAY_CONTROL_REG,     FARL_DISPLAY_CONTROL_BCM1
FARL_H_TIMING_REG,            0x9ebd
FARL_V_TIMING_REG,            0x8316
FARL_CMT_BANK_SELECT_REG,     0x0
FARL_SP_WINDOW_CLIP_XLEFT,    0x0000
FARL_SP_WINDOW_CLIP_YTOP,     0x0000
FARL_SP_WINDOW_CLIP_XRIGHT,   0x00FF
FARL_SP_WINDOW_CLIP_YBOTTOM,  0x00FF
FARL_RASTER_HIT_REG,          0x0

＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

《著作権及び登録商標等》

・LIBFARL.A 及び LIBFARL.TXT（以下、"本ソフトウェア"という）は、ＰＣ−ＦＸＧＡ
  用のソフトウェア開発ツールの一部です。本ソフトウェアを、ＰＣ−ＦＸ、ＰＣ−Ｆ
  ＸＧＡ用のソフトウェア開発以外の目的で使用しないで下さい。

・本ソフトウェアを使用した結果、直接及び間接的に生じた損害について、株式会社ハ
  ドソンは、一切の責任または債務を負わないものとします。

・本ソフトウェアの操作方法、技術的内容、その他の質問について、株式会社ハドソン
  では、直接お答えしていません。お問い合わせはご遠慮下さい。

・本ソフトウェアの使用に際し、「ソフトウェアのご使用条件」をよくご覧いただき、
  ご利用下さいますようお願い致します。


MS-DOSは米国マイクロソフト社の登録商標です。
その他、記載されている会社名、製品名は、各社の登録商標または商標です。


                                                           (C)1995 HUDSON SOFT
                                                           (C)1995 KUBOTA CORP.

